az ssh
Note
此引用是 Azure CLI 的 ssh 扩展的一部分(版本 2.45.0 或更高版本)。 该扩展将在首次运行 az ssh 命令时自动安装。 了解更多关于扩展的信息。
使用 AAD 颁发的打开证书通过 SSH 连接到资源(Azure VM、Arc 服务器等)。
通过 SSH 连接到已启用 Arc 的服务器,而无需使用公共 IP 地址或 SSH 连接到Azure 虚拟机。 AAD 颁发的打开证书用于身份验证,目前仅支持 Linux。
命令
| 名称 | 说明 | 类型 | Status |
|---|---|---|---|
| az ssh arc |
通过 SSH 连接到Azure Arc服务器。 |
Extension | GA |
| az ssh cert |
创建由 AAD 签名的 SSH RSA 证书。 |
Extension | GA |
| az ssh config |
为支持 OpenSSH 配置和证书的客户端创建资源(Azure VM、Arc Server 等)的 SSH 配置。 |
Extension | GA |
| az ssh vm |
通过 SSH 连接到 Azure VM 或 Arc 服务器。 |
Extension | GA |
az ssh arc
通过 SSH 连接到Azure Arc服务器。
用户可以使用 AAD 颁发的证书或使用本地用户凭据登录。 建议使用 AAD 颁发的证书登录。 若要使用本地用户凭据进行 SSH,必须使用 --local-user 参数提供本地用户名。
az ssh arc [--acquire-policy-token]
[--certificate-file]
[--change-reference]
[--local-user]
[--name --vm-name]
[--port]
[--private-key-file]
[--public-key-file]
[--rdp --winrdp]
[--resource-group]
[--resource-type]
[--ssh-client-folder]
[--ssh-proxy-folder]
[--yes --yes-without-prompt]
[]
示例
使用 AAD 颁发的证书向 SSH 提供资源组名称和计算机名称
az ssh arc --resource-group myResourceGroup --name myMachine
使用自定义私钥文件
az ssh arc --resource-group myResourceGroup --name myMachine --private-key-file key --public-key-file key.pub
使用其他 ssh 参数
az ssh arc --resource-group myResourceGroup --name myMachine -- -A -o ForwardX11=yes
使用基于证书的身份验证通过本地用户凭据向 SSH 提供本地用户名。
az ssh arc --local-user username --resource-group myResourceGroup --name myMachine --certificate-file cert.pub --private-key-file key
使用基于密钥的身份验证通过本地用户凭据向 SSH 提供本地用户名。
az ssh arc --local-user username --resource-group myResourceGroup --name myMachine --private-key-file key
使用基于密码的身份验证通过本地用户凭据为 SSH 提供本地用户名。
az ssh arc --local-user username --resource-group myResourceGroup --name myMachine
为 SSH 客户端文件夹提供使用该文件夹中的 ssh 可执行文件,例如 ssh-keygen.exe 和 ssh.exe。 如果未提供,扩展将尝试使用预安装的 OpenSSH 客户端(在Windows上,扩展查找 C:\Windows\System32\OpenSSH 下的预安装的可执行文件)。
az ssh arc --resource-group myResourceGroup --name myMachine --ssh-client-folder "C:\Program Files\OpenSSH"
通过 SSH 打开 RDP 连接。 用于通过 RDP 连接到没有公共 IP 地址的 Arc 服务器。 目前仅支持Windows客户端。
az ssh arc --resource-group myResourceGroup --name myVM --local-user username --rdp
可选参数
以下参数是可选的,但根据上下文,命令可能需要一个或多个参数才能成功执行。
为此资源操作自动获取Azure Policy令牌。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
证书文件的路径。
此资源操作的相关更改引用 ID。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
本地用户的用户名。
Arc Server 的名称。
要连接到远程主机上的端口。
RSA 私钥文件路径。
RSA 公钥文件路径。
通过 SSH 启动 RDP 连接。
| 属性 | 值 |
|---|---|
| 默认值: | False |
资源组的名称。 可以使用 az configure --defaults group=<name>配置默认组。
资源类型应为Microsoft。HybridCompute/machines 或 Microsoft。ConnectedVMwareSphere/virtualMachines。
包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe等)。 如果未提供,则默认为 ssh 预安装。
应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。
在不提示用户的情况下更新服务配置。
| 属性 | 值 |
|---|---|
| 默认值: | False |
传递给 OpenSSH 的其他参数。
| 属性 | 值 |
|---|---|
| 参数组: | Positional |
全局参数
提高日志记录详细程度以显示所有调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | 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 ssh cert
创建由 AAD 签名的 SSH RSA 证书。
az ssh cert [--acquire-policy-token]
[--change-reference]
[--file]
[--public-key-file]
[--ssh-client-folder]
示例
创建 AAD 签名的短期 SSH 证书
az ssh cert --public-key-file ./id_rsa.pub --file ./id_rsa-aadcert.pub
为 SSH 客户端文件夹提供使用该文件夹中的 ssh 可执行文件,例如 ssh-keygen.exe。 如果未提供,扩展将尝试使用预安装的 OpenSSH 客户端(在Windows上,扩展查找 C:\Windows\System32\OpenSSH 下的预安装的可执行文件)。
az ssh cert --file ./id_rsa-aadcert.pub --ssh-client-folder "C:\Program Files\OpenSSH"
可选参数
以下参数是可选的,但根据上下文,命令可能需要一个或多个参数才能成功执行。
为此资源操作自动获取Azure Policy令牌。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
此资源操作的相关更改引用 ID。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
要向其写入 SSH 证书的文件路径,默认为使用 -aadcert.pub appened 的公钥路径。
RSA 公钥文件路径。 如果未提供,生成的密钥对将存储在与 --file 相同的目录中。
包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe等)。 如果未提供,则默认为 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 ssh config
为支持 OpenSSH 配置和证书的客户端创建资源(Azure VM、Arc Server 等)的 SSH 配置。
支持设置 SSH 命令的其他软件(git/rsync/etc)可以通过将命令设置为“ssh -F /path/to/config”来使用配置文件,例如 rsync -e“ssh -F /path/to/config”。 用户可以创建使用 AAD 颁发的证书或本地用户凭据的 ssh 配置文件。
az ssh config --file
[--acquire-policy-token]
[--certificate-file]
[--change-reference]
[--ip]
[--keys-dest-folder --keys-destination-folder]
[--local-user]
[--name --vm-name]
[--overwrite]
[--port]
[--prefer-private-ip]
[--private-key-file]
[--public-key-file]
[--resource-group]
[--resource-type]
[--ssh-client-folder]
[--ssh-proxy-folder]
[--yes --yes-without-prompt]
示例
为资源组和计算机名称提供使用 AAD 颁发的证书创建配置的资源组和计算机名称,将其保存在本地文件中,然后通过 ssh 连接到该资源
az ssh config --resource-group myResourceGroup --name myVm --file ./sshconfig
ssh -F ./sshconfig myResourceGroup-myVM
为要为其创建配置,然后通过 ssh 连接到该 VM 的Azure VM 的公共 IP(或主机名)
az ssh config --ip 1.2.3.4 --file ./sshconfig
ssh -F ./sshconfig 1.2.3.4
为本地用户提供使用本地用户凭据创建配置、保存在本地文件中,然后通过 ssh 登录到该资源
az ssh config --resource-group myResourceGroup --name myMachine --local-user username --certificate-file cert --private-key-file key --file ./sshconfig
ssh -F ./sshconfig MyResourceGroup-myMachine-username
为密钥目标文件夹提供存储生成的密钥和证书。 如果未提供,SSH 密钥将存储在配置文件旁边的新文件夹“az_ssh_config”。
az ssh config --ip 1.2.3.4 --file ./sshconfig --keys-destination-folder /home/user/mykeys
创建用于任何主机的通用配置
#Bash
az ssh config --ip \* --file ./sshconfig
#PowerShell
az ssh config --ip * --file ./sshconfig
其他软件的示例
#Bash
az ssh config --ip \* --file ./sshconfig
rsync -e 'ssh -F ./sshconfig' -avP directory/ myvm:~/directory
GIT_SSH_COMMAND="ssh -F ./sshconfig" git clone myvm:~/gitrepo
为 SSH 客户端文件夹提供使用该文件夹中的 ssh 可执行文件,例如 ssh-keygen.exe。 如果未提供,扩展将尝试使用预安装的 OpenSSH 客户端(在Windows上,扩展查找 C:\Windows\System32\OpenSSH 下的预安装的可执行文件)。
az ssh config --file ./myconfig --resource-group myResourceGroup --name myVM --ssh-client-folder "C:\Program Files\OpenSSH"
为目标提供资源类型。 当存在同一资源组中同名的 Azure VM 和 Arc Server 时非常有用。 资源类型可以是“Microsoft。Arc Server 的 HybridCompute 或“Microsoft”。Azure 虚拟机的计算“ 。
az ssh config --resource-type [Microsoft.Compute/virtualMachines|Microsoft.HybridCompute/machines] --resource-group myResourceGroup --name myVM --file ./myconfig
必需参数
要向其写入 SSH 配置的文件路径。
可选参数
以下参数是可选的,但根据上下文,命令可能需要一个或多个参数才能成功执行。
为此资源操作自动获取Azure Policy令牌。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
证书文件的路径。
此资源操作的相关更改引用 ID。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
VM 的公共 IP 地址(或主机名)。
将存储新生成的密钥的文件夹。
本地用户的用户名。
VM 的名称。
如果设置了此标志,则覆盖配置文件。
| 属性 | 值 |
|---|---|
| 默认值: | False |
SSH 端口。
如果可用,将使用专用 IP。 默认情况下,仅使用公共 IP。
| 属性 | 值 |
|---|---|
| 默认值: | False |
RSA 私钥文件路径。
RSA 公钥文件路径。
资源组的名称。 可以使用 az configure --defaults group=<name>配置默认组。
资源类型应为Microsoft。计算/virtualMachines,Microsoft。HybridCompute/machines 或 Microsoft。ConnectedVMwareSphere/virtualMachines。
包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe等)。 如果未提供,则默认为 ssh 预安装。
应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。
在不提示用户的情况下更新服务配置。
| 属性 | 值 |
|---|---|
| 默认值: | False |
全局参数
提高日志记录详细程度以显示所有调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | 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 ssh vm
通过 SSH 连接到 Azure VM 或 Arc 服务器。
用户可以使用 AAD 颁发的证书或使用本地用户凭据登录。 建议使用 AAD 颁发的证书登录。 若要使用本地用户凭据进行 SSH,必须使用 --local-user 参数提供本地用户名。
az ssh vm [--acquire-policy-token]
[--certificate-file]
[--change-reference]
[--hostname --ip]
[--local-user]
[--name --vm-name]
[--port]
[--prefer-private-ip]
[--private-key-file]
[--public-key-file]
[--rdp --winrdp]
[--resource-group]
[--resource-type]
[--ssh-client-folder]
[--ssh-proxy-folder]
[--yes --yes-without-prompt]
[]
示例
使用 AAD 颁发的证书向 SSH 提供资源组名称和计算机名称
az ssh vm --resource-group myResourceGroup --name myVM
使用 AAD 颁发的证书将 VM 的公共 IP(或主机名)提供给 SSH
az ssh vm --ip 1.2.3.4
az ssh vm --hostname example.com
使用自定义私钥文件
az ssh vm --ip 1.2.3.4 --private-key-file key --public-key-file key.pub
使用其他 ssh 参数
az ssh vm --ip 1.2.3.4 -- -A -o ForwardX11=yes
为目标提供资源类型。 当存在同一资源组中同名的 Azure VM 和 Arc Server 时非常有用。 资源类型可以是“Microsoft。Arc Server 的 HybridCompute 或“Microsoft”。Azure 虚拟机的计算“ 。
az ssh vm --resource-type [Microsoft.Compute/virtualMachines|Microsoft.HybridCompute/machines] --resource-group myResourceGroup --name myVM
使用基于证书的身份验证通过本地用户凭据向 SSH 提供本地用户名。
az ssh vm --local-user username --ip 1.2.3.4 --certificate-file cert.pub --private-key-file key
使用基于密钥的身份验证通过本地用户凭据向 SSH 提供本地用户名。
az ssh vm --local-user username --resource-group myResourceGroup --name myVM --private-key-file key
使用基于密码的身份验证通过本地用户凭据为 SSH 提供本地用户名。
az ssh vm --local-user username --resource-group myResourceGroup --name myArcServer
为 SSH 客户端文件夹提供使用该文件夹中的 ssh 可执行文件,例如 ssh-keygen.exe 和 ssh.exe。 如果未提供,扩展将尝试使用预安装的 OpenSSH 客户端(在Windows上,扩展查找 C:\Windows\System32\OpenSSH 下的预安装的可执行文件)。
az ssh vm --resource-group myResourceGroup --name myVM --ssh-client-folder "C:\Program Files\OpenSSH"
通过 SSH 打开 RDP 连接。 用于通过 RDP 连接到没有公共 IP 地址的 Arc 服务器。 目前仅支持Windows客户端。
az ssh vm --resource-group myResourceGroup --name myVM --local-user username --rdp
可选参数
以下参数是可选的,但根据上下文,命令可能需要一个或多个参数才能成功执行。
为此资源操作自动获取Azure Policy令牌。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
使用本地用户凭据时用于身份验证的证书文件的路径。
此资源操作的相关更改引用 ID。
| 属性 | 值 |
|---|---|
| 参数组: | Global Policy Arguments |
VM 的公共(或可访问的专用)IP 地址(或主机名)。
本地用户的用户名。
VM 的名称。
SSH 端口。
首选专用 IP。 需要连接到专用 IP。
| 属性 | 值 |
|---|---|
| 默认值: | False |
RSA 私钥文件路径。
RSA 公钥文件路径。
通过 SSH 启动 RDP 连接。
| 属性 | 值 |
|---|---|
| 默认值: | False |
资源组的名称。 可以使用 az configure --defaults group=<name>配置默认组。
资源类型应为Microsoft。计算/virtualMachines,Microsoft。HybridCompute/machines 或 Microsoft。ConnectedVMwareSphere/virtualMachines。
包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe等)。 如果未提供,则默认为 ssh 预安装。
应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。
在不提示用户的情况下更新服务配置。
| 属性 | 值 |
|---|---|
| 默认值: | False |
传递给 OpenSSH 的其他参数。
| 属性 | 值 |
|---|---|
| 参数组: | Positional |
全局参数
提高日志记录详细程度以显示所有调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |
显示此帮助消息并退出。
仅显示错误,禁止显示警告。
| 属性 | 值 |
|---|---|
| 默认值: | False |
输出格式。
| 属性 | 值 |
|---|---|
| 默认值: | json |
| 接受的值: | json, jsonc, none, table, tsv, yaml, yamlc |
JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/。
订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。
增加日志记录详细程度。 使用 --debug 获取完整的调试日志。
| 属性 | 值 |
|---|---|
| 默认值: | False |