你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

az ssh

注意

此参考是 Azure CLI(版本 2.45.0 或更高版本)的 ssh 扩展的一部分。 该扩展将在首次运行 az ssh 命令时自动安装。 详细了解扩展。

使用 AAD 颁发的打开证书通过 SSH 连接到资源(Azure VM、Arc 服务器等)。

通过 SSH 连接到已启用 Arc 的服务器,无需公共 IP 地址或 SSH 连接到 Azure 虚拟机。 AAD 颁发的打开证书用于身份验证,目前仅支持 Linux。

命令

名称 说明 类型 状态
az ssh arc

通过 SSH 连接到 Azure Arc 服务器。

分机 GA
az ssh cert

创建由 AAD 签名的 SSH RSA 证书。

扩展 GA
az ssh config

为支持 OpenSSH 配置和证书的客户端创建资源(Azure VM、Arc 服务器等)的 SSH 配置。然后,这些配置可供支持 OpenSSH 配置和证书的客户端使用。

分机 GA
az ssh vm

通过 SSH 连接到 Azure VM 或 Arc 服务器。

扩展 GA

az ssh arc

通过 SSH 连接到 Azure Arc 服务器。

用户可以使用 AAD 颁发的证书或使用本地用户凭据登录。 建议使用 AAD 颁发的证书登录。 若要使用本地用户凭据进行 SSH,必须使用 --local-user 参数提供本地用户名。

az ssh arc [--certificate-file]
           [--local-user]
           [--name]
           [--port]
           [--private-key-file]
           [--public-key-file]
           [--rdp]
           [--resource-group]
           [--resource-type]
           [--ssh-client-folder]
           [--ssh-proxy-folder]
           [--yes]
           [<SSH_ARGS>]

示例

使用 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

可选参数

--certificate-file -c

证书文件的路径。

--local-user

本地用户的用户名。

--name --vm-name -n

Arc Server 的名称。

--port

要连接到远程主机上的端口。

--private-key-file -i

RSA 私钥文件路径。

--public-key-file -p

RSA 公钥文件路径。

--rdp --winrdp

通过 SSH 启动 RDP 连接。

默认值: False
--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--resource-type

资源类型应为 Microsoft.HybridCompute/machines 或 Microsoft。连接edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe 等)。 如果未提供,则默认为 ssh 预安装。

--ssh-proxy-folder

应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。

--yes --yes-without-prompt -y

在不提示用户的情况下更新服务配置。

默认值: False
<SSH_ARGS>

传递给 OpenSSH 的其他参数。

全局参数
--debug

提高日志记录详细程度以显示所有调试日志。

--help -h

显示此帮助消息并退出。

--only-show-errors

只显示错误,取消显示警告。

--output -o

输出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
默认值: json
--query

JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--verbose

提高日志记录详细程度。 使用 --debug 获取完整的调试日志。

az ssh cert

创建由 AAD 签名的 SSH RSA 证书。

az ssh cert [--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"

可选参数

--file -f

要向其写入 SSH 证书的文件路径,默认为使用 -aadcert.pub appened 的公钥路径。

--public-key-file -p

RSA 公钥文件路径。 如果未提供,生成的密钥对将存储在与 --file 相同的目录中。

--ssh-client-folder

包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe 等)。 如果未提供,则默认为 ssh 预安装。

全局参数
--debug

提高日志记录详细程度以显示所有调试日志。

--help -h

显示此帮助消息并退出。

--only-show-errors

只显示错误,取消显示警告。

--output -o

输出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
默认值: json
--query

JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--verbose

提高日志记录详细程度。 使用 --debug 获取完整的调试日志。

az ssh config

为支持 OpenSSH 配置和证书的客户端创建资源(Azure VM、Arc 服务器等)的 SSH 配置。然后,这些配置可供支持 OpenSSH 配置和证书的客户端使用。

支持设置 SSH 命令的其他软件(git/rsync/etc)可以通过将命令设置为“ssh -F /path/to/config”(例如 rsync -e'ssh -F /path/to/config')来使用配置文件。 用户可以创建使用 AAD 颁发的证书或本地用户凭据的 ssh 配置文件。

az ssh config --file
              [--certificate-file]
              [--ip]
              [--keys-dest-folder]
              [--local-user]
              [--name]
              [--overwrite]
              [--port]
              [--prefer-private-ip]
              [--private-key-file]
              [--public-key-file]
              [--resource-group]
              [--resource-type]
              [--ssh-client-folder]
              [--ssh-proxy-folder]
              [--yes]

示例

为资源组和计算机名称提供使用 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 在同一资源组中具有相同名称时非常有用。 资源类型可以是 Arc Server 的“Microsoft.HybridCompute”,也可以是 Azure 虚拟机的“Microsoft.Compute”。

az ssh config --resource-type [Microsoft.Compute/virtualMachines|Microsoft.HybridCompute/machines] --resource-group myResourceGroup --name myVM --file ./myconfig

必需参数

--file -f

要向其写入 SSH 配置的文件路径。

可选参数

--certificate-file -c

证书文件的路径。

--ip

VM 的公共 IP 地址(或主机名)。

--keys-dest-folder --keys-destination-folder

将存储新生成的密钥的文件夹。

--local-user

本地用户的用户名。

--name --vm-name -n

VM 的名称。

--overwrite

如果设置了此标志,则覆盖配置文件。

默认值: False
--port

SSH 端口。

--prefer-private-ip

如果可用,将使用专用 IP。 默认情况下,仅使用公共 IP。

默认值: False
--private-key-file -i

RSA 私钥文件路径。

--public-key-file -p

RSA 公钥文件路径。

--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--resource-type

资源类型应为 Microsoft.Compute/virtualMachines、Microsoft.HybridCompute/machines 或 Microsoft。连接edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe 等)。 如果未提供,则默认为 ssh 预安装。

--ssh-proxy-folder

应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。

--yes --yes-without-prompt -y

在不提示用户的情况下更新服务配置。

默认值: False
全局参数
--debug

提高日志记录详细程度以显示所有调试日志。

--help -h

显示此帮助消息并退出。

--only-show-errors

只显示错误,取消显示警告。

--output -o

输出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
默认值: json
--query

JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--verbose

提高日志记录详细程度。 使用 --debug 获取完整的调试日志。

az ssh vm

通过 SSH 连接到 Azure VM 或 Arc 服务器。

用户可以使用 AAD 颁发的证书或使用本地用户凭据登录。 建议使用 AAD 颁发的证书登录。 若要使用本地用户凭据进行 SSH,必须使用 --local-user 参数提供本地用户名。

az ssh vm [--certificate-file]
          [--hostname]
          [--local-user]
          [--name]
          [--port]
          [--prefer-private-ip]
          [--private-key-file]
          [--public-key-file]
          [--rdp]
          [--resource-group]
          [--resource-type]
          [--ssh-client-folder]
          [--ssh-proxy-folder]
          [--yes]
          [<SSH_ARGS>]

示例

使用 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 在同一资源组中具有相同名称时非常有用。 资源类型可以是 Arc Server 的“Microsoft.HybridCompute”,也可以是 Azure 虚拟机的“Microsoft.Compute”。

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

可选参数

--certificate-file -c

使用本地用户凭据时用于身份验证的证书文件的路径。

--hostname --ip

VM 的公共(或可访问的专用)IP 地址(或主机名)。

--local-user

本地用户的用户名。

--name --vm-name -n

VM 的名称。

--port

SSH 端口。

--prefer-private-ip

首选专用 IP。 需要连接到专用 IP。

默认值: False
--private-key-file -i

RSA 私钥文件路径。

--public-key-file -p

RSA 公钥文件路径。

--rdp --winrdp

通过 SSH 启动 RDP 连接。

默认值: False
--resource-group -g

资源组的名称。 可以使用 az configure --defaults group=<name> 配置默认组。

--resource-type

资源类型应为 Microsoft.Compute/virtualMachines、Microsoft.HybridCompute/machines 或 Microsoft。连接edVMwareSphere/virtualMachines。

--ssh-client-folder

包含 ssh 可执行文件的文件夹路径(ssh.exe、ssh-keygen.exe 等)。 如果未提供,则默认为 ssh 预安装。

--ssh-proxy-folder

应保存 ssh 代理的文件夹的路径。 如果未提供,则默认为用户主目录中的 .clientsshproxy 文件夹。

--yes --yes-without-prompt -y

在不提示用户的情况下更新服务配置。

默认值: False
<SSH_ARGS>

传递给 OpenSSH 的其他参数。

全局参数
--debug

提高日志记录详细程度以显示所有调试日志。

--help -h

显示此帮助消息并退出。

--only-show-errors

只显示错误,取消显示警告。

--output -o

输出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
默认值: json
--query

JMESPath 查询字符串。 有关更多信息和示例,请参阅 http://jmespath.org/

--subscription

订阅的名称或 ID。 可以使用 az account set -s NAME_OR_ID 配置默认订阅。

--verbose

提高日志记录详细程度。 使用 --debug 获取完整的调试日志。