# 连接参数
每种协议都有其各自的认证表单字段以及各自的命令行地址语法。本页将逐个协议加以说明。
## SFTP / SCP
认证表单字段:
- 主机(地址)
- 端口(默认 `22`)
- 用户名
- 密码或 SSH 密钥
你可以使用用户名和密码进行认证,也可以使用 SSH 密钥进行认证。有关如何管理密钥,请参阅 [SSH 密钥存储](../configuration/ssh-keys.md)。
地址语法:
```txt
[protocol://][username@]
[:port][:wrkdir]
```
## FTP / FTPS
认证表单字段:
- 主机(地址)
- 端口(默认 `21`)
- 用户名
- 密码
- 安全(FTPS):启用 TLS 以使用 FTPS 而非明文 FTP
地址语法:
```txt
[protocol://][username@][:port][:wrkdir]
```
## Kube
认证表单字段:
- 命名空间
- 集群 URL(Kubernetes API URL)
- 用户名
- 客户端证书路径
- 客户端密钥路径
地址语法:
```txt
kube://[namespace][@][$]
```
## S3
termscp 同时支持 AWS S3 和其他兼容 S3 的端点。
认证表单字段:
- 存储桶名称
- 区域(用于 AWS S3)或端点(用于其他兼容 S3 的服务器)
- 配置文件
- 访问密钥
- 私有访问密钥
- 安全令牌
- 会话令牌
- 新路径风格
所需字段和可选字段会因端点不同而有所差异:
- AWS S3:
- 存储桶名称(必填)
- 区域(必填)
- 配置文件(可选;默认为 `default`)
- 访问密钥(除非存储桶为公开,否则必填)
- 私有访问密钥(除非存储桶为公开,否则必填)
- 安全令牌(如有需要)
- 会话令牌(如有需要)
- 新路径风格:否
- 其他 S3 端点:
- 存储桶名称(必填)
- 端点(必填)
- 访问密钥(除非存储桶为公开,否则必填)
- 私有访问密钥(除非存储桶为公开,否则必填)
- 新路径风格:是
地址语法:
```txt
s3://@[:profile][:/wrkdir]
```
例如:
```txt
s3://buckethead@eu-central-1:default:/assets
```
### S3 凭证
要连接到 AWS S3 存储桶,你必须提供凭据。有三种方式可以做到这一点。
1. 认证表单:提供访问密钥(通常必填)、私有访问密钥(通常必填)、安全令牌和会话令牌。如果你将该 S3 连接保存为书签,访问密钥和私有访问密钥将以加密的 AES-256/BASE64 字符串形式保存在你的书签文件中。安全令牌和会话令牌不会被保存,因为它们本身就是临时凭据。
2. 凭据文件:使用 `aws configure` 配置 AWS CLI。随后你的凭据将被存储在 `~/.aws/credentials`。如果你使用的是 `default` 以外的配置文件,请在认证表单的配置文件字段中提供它。
3. 环境变量:以环境变量的形式提供你的凭据。这些变量始终会覆盖凭据文件中的凭据。以下变量通常是必需的:
- `AWS_ACCESS_KEY_ID`:AWS 访问密钥 ID(通常以 `AKIA...` 开头)
- `AWS_SECRET_ACCESS_KEY`:私有访问密钥
如果你配置了更强的安全机制,可能还需要:
- `AWS_SECURITY_TOKEN`:安全令牌
- `AWS_SESSION_TOKEN`:会话令牌
你的凭据是安全的:termscp 不会直接操作这些值。它们由 `s3` crate 直接使用。
## Google Cloud Storage
termscp 通过 Google Cloud Storage JSON API 支持 Google Cloud Storage(GCS)存储桶。
认证表单字段:
- 存储桶名称(必填)
- 端点(默认为 `https://storage.googleapis.com`)
- 可选的服务账号 JSON 路径
将服务账号 JSON 路径留空即可使用应用默认凭据(ADC)。当 termscp 在 Google
Cloud 基础设施上运行时,ADC 可以从 `GOOGLE_APPLICATION_CREDENTIALS`、本地
gcloud ADC 凭据或 Google Cloud 元数据服务中获取凭据。
提供服务账号 JSON 路径后,termscp 会在连接时读取该文件。书签只保存该路径,
不会复制服务账号 JSON 或其中的私钥。
专用的 CLI 语法如下:
```txt
gcs://[:/working/directory]
```
CLI 连接使用 ADC 和默认端点。如果需要自定义端点或服务账号 JSON 路径,请使用
认证表单或书签。所选 ADC 身份或服务账号必须拥有你想执行的存储操作所需的 IAM
权限。
## SMB
认证表单字段:
- 服务器(地址)
- 共享
- 用户名
- 密码
- 端口(仅其他系统;默认 `445`)
- 工作组(仅其他系统)
- SMB 版本(仅其他系统;默认 `Auto`)
在 Windows 上,端口、工作组和 SMB 版本字段不会被使用:SMB 协议协商由操作系统管理。
SMB 版本字段限定协商时可用的方言:
| 选项 | 协商的方言 |
| ---- | ------------------ |
| Auto | SMB 2.0.2 至 3.1.1 |
| SMB1 | 仅 NT1(CIFS) |
| SMB2 | SMB 2.0.2 至 2.1 |
| SMB3 | SMB 3.0 至 3.1.1 |
`Auto` 永远不会协商 SMB1。SMB1 已弃用且不安全:仅在无法支持更新协议的隔离旧设备上选择它。选择 SMB1 时,表单中会显示警告。
书签使用 SMB 表中的 `dialect` 键保存所选项(`auto`、`smb1`、`smb2` 或 `smb3`)。在此选项出现之前保存的书签没有 `dialect` 键,其行为等同于 `Auto`。下方的地址语法不包含版本;从命令行发起的连接使用 `Auto`。
Windows 地址语法:
```txt
\\[username@]\[\path\...]
```
其他系统地址语法:
```txt
smb://[username@][:port]/[/path/.../]
```
## WebDAV
认证表单字段:
- URI(WebDAV 的基础端点)
- 用户名
- 密码
地址语法:
```txt
http(s)://:@
```