az sftp
注释
此参考是 Azure CLI(版本 2.75.0 或更高版本) 的 sftp 扩展的一部分。 该扩展将在首次运行 az sftp 命令时自动安装。 了解更多关于扩展的信息。
通过 SFTP 生成 SSH 证书并访问 Azure 存储 Blob 数据。
这些命令允许使用 SFTP 生成证书并连接到 Azure 存储帐户。
先决条件:
- 已启用 SFTP 的 Azure 存储帐户
- 适当的 RBAC 权限(存储 Blob 数据参与者或类似权限)
- Azure CLI 身份验证(az login)
- 与 Azure 存储终结点的网络连接
SFTP 扩展提供两个主要功能:
- 使用 Azure AD 身份验证生成证书(类似于“az ssh cert”)
- 使用自动凭据处理与 Azure 存储的完全托管 SFTP 连接
身份验证模式:
- 完全托管:无需凭据 - 自动生成 SSH 证书
- 基于证书:使用现有的 SSH 证书文件
- 基于密钥:使用 SSH 公钥/私钥对(自动生成证书)
此扩展紧跟 SSH 扩展建立的模式。
命令
| 名称 | 说明 | 类型 | Status |
|---|---|---|---|
| az sftp cert |
生成用于 SFTP 身份验证的 SSH 证书。 |
Extension | GA |
| az sftp connect |
通过 SFTP 访问 Azure 存储 Blob 数据。 |
Extension | GA |
az sftp cert
生成用于 SFTP 身份验证的 SSH 证书。
生成可用于对 Azure 存储 SFTP 终结点进行身份验证的 SSH 证书。 这使用 Azure AD 身份验证生成类似于“az ssh cert”的证书。
证书命名:
- 生成的证书具有“-aadcert.pub”后缀(例如,id_rsa-aadcert.pub)
- 证书有效期为有限时间(通常为 1 小时)
- 创建密钥对时,使用“id_rsa”名称生成私钥
该证书可与“az sftp connect”或标准 SFTP 客户端一起使用。
az sftp cert [--file]
[--public-key-file]
[--ssh-client-folder]
示例
使用现有公钥生成证书
az sftp cert --public-key-file ~/.ssh/id_rsa.pub --file ~/my_cert.pub
生成证书并在同一目录中创建新的密钥对
az sftp cert --file ~/my_cert.pub
使用自定义 SSH 客户端文件夹生成证书
az sftp cert --file ~/my_cert.pub --ssh-client-folder "C:\Program Files\OpenSSH"
可选参数
The following parameters are optional, but depending on the context, one or more might become required for the command to execute successfully.
要向其写入 SSH 证书的文件路径,默认为带有 -aadcert.pub 的公钥路径。
RSA 公钥文件路径。 如果未提供,生成的密钥对将存储在与 --file 相同的目录中。
包含 ssh 可执行文件的文件夹路径(ssh-keygen,ssh)。 默认为 PATH 或 C:\Windows\System32\OpenSSH on Windows 中的 ssh 可执行文件。
全局参数
提高日志记录详细程度以显示所有调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |
显示此帮助消息并退出。
只显示错误,取消显示警告。
| 属性 | 值 |
|---|---|
| 默认值: | False |
输出格式。
| 属性 | 值 |
|---|---|
| 默认值: | json |
| 接受的值: | json, jsonc, none, table, tsv, yaml, yamlc |
JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/。
订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。
增加日志记录详细程度。 使用 --debug 获取完整的调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |
az sftp connect
通过 SFTP 访问 Azure 存储 Blob 数据。
建立与 Azure 存储帐户的 SFTP 连接。
身份验证模式:
完全托管(建议):在没有凭据的情况下运行 - 自动生成 SSH 证书并建立连接。 使用后会清理凭据。
基于证书:使用现有的 SSH 证书文件。 必须使用“az sftp cert”生成证书或与 Azure AD 身份验证兼容。
基于密钥:提供 SSH 密钥 - 命令将从密钥自动生成证书。
连接详细信息:
- 用户名格式:{storage-account}。{azure-username}
- 端口:除非使用 --port 指定,否则使用 SSH 默认值(通常为 22)
- 根据 Azure 云环境自动解析的终结点:
- Azure 公共:{storage-account}.blob.core.windows.net
- Azure 中国:{storage-account}.blob.core.chinacloudapi.cn
- Azure 政府版:{storage-account}.blob.core.usgovcloudapi.net
安全:
- 连接后会自动清理生成的凭据
- 存储在安全临时目录中的临时文件
- OpenSSH 在连接期间处理证书验证。
az sftp connect --storage-account
[--certificate-file]
[--port]
[--private-key-file]
[--public-key-file]
[--sftp-args]
[--ssh-client-folder]
示例
使用自动证书生成(完全托管 - 建议)进行连接
az sftp connect --storage-account mystorageaccount
使用现有证书连接到存储帐户
az sftp connect --storage-account mystorageaccount --certificate-file ~/my_cert.pub
使用现有的 SSH 密钥对进行连接
az sftp connect --storage-account mystorageaccount --public-key-file ~/.ssh/id_rsa.pub --private-key-file ~/.ssh/id_rsa
使用自定义端口进行连接
az sftp connect --storage-account mystorageaccount --port 2222
使用其他 SFTP 参数进行连接以调试
az sftp connect --storage-account mystorageaccount --sftp-args="-v"
使用自定义 SSH 客户端文件夹(Windows) 进行连接
az sftp connect --storage-account mystorageaccount --ssh-client-folder "C:\Program Files\OpenSSH"
使用自定义连接超时进行连接
az sftp connect --storage-account mystorageaccount --sftp-args="-o ConnectTimeout=30"
必需参数
用于 SFTP 连接的 Azure 存储帐户名称。 必须启用 SFTP。
可选参数
The following parameters are optional, but depending on the context, one or more might become required for the command to execute successfully.
用于身份验证的 SSH 证书文件的路径。 必须使用“az sftp cert”或兼容的 Azure AD 证书生成。 如果未提供证书,将自动生成证书。
SFTP 端口。 如果未指定,请使用 SSH 默认端口(通常为 22)。
RSA 私钥文件的路径。 如果未提供证书,则会从此密钥自动生成证书。
RSA 公钥文件的路径。 如果未提供证书,则会从此密钥自动生成证书。
要传递给 SFTP 客户端的其他参数。 示例:“-v”用于详细输出,“-b batchfile.txt”用于批处理命令,“-o ConnectTimeout=30”表示自定义超时。
包含 SSH 客户端可执行文件的文件夹路径(ssh、sftp、ssh-keygen)。 默认值:在 Windows 上使用 PATH 或 C:\Windows\System32\OpenSSH 中的可执行文件。
全局参数
提高日志记录详细程度以显示所有调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |
显示此帮助消息并退出。
只显示错误,取消显示警告。
| 属性 | 值 |
|---|---|
| 默认值: | False |
输出格式。
| 属性 | 值 |
|---|---|
| 默认值: | json |
| 接受的值: | json, jsonc, none, table, tsv, yaml, yamlc |
JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/。
订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。
增加日志记录详细程度。 使用 --debug 获取完整的调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |