使用 Azure CLI 生成并存储 SSH 密钥

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集

可以在创建 VM 之前创建 SSH 密钥,并将这些密钥存储在 Azure 中。 每个新创建的 SSH 密钥也存储在本地。

如果有现有的 SSH 密钥,则可以将其上传并存储在 Azure 中以供重复使用。

有关详细信息,请参阅详细步骤:创建和管理用于 Azure 中 Linux VM 的身份验证的 SSH 密钥

有关如何在 Linux VM 中创建和使用 SSH 密钥的详细信息,请参阅使用 SSH 密钥连接到 Linux VM

生成新密钥

首先为 Azure CLI 准备环境:

可以使用本地 Azure CLI。

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

  • 本地 Azure CLI,请了解如何安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 通过使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  1. 在登录后,使用 az sshkey create 命令创建新的 SSH 密钥:

    az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
    

    注意

    此命令默认为 RSA 密钥类型。为了生成 ED25519 密钥,你可以传入可选标志 --encryption-type Ed25519

  2. 生成的输出列出了新密钥文件的路径:

    Private key is saved to "/home/user/.ssh/7777777777_9999999".
    Public key is saved to "/home/user/.ssh/7777777777_9999999.pub".
    
  3. 更改私钥文件的权限以保护隐私:

    chmod 600 /home/user/.ssh/7777777777_9999999
    

连接到 VM

在本地计算机上,打开 Bash 提示符:

ssh -identity_file <path to the private key file> username@<ipaddress of the VM>

例如,输入 ssh -i /home/user/.ssh/mySSHKey azureuser@123.45.67.890

上传 SSH 密钥

可以上传公共 SSH 密钥以存储在 Azure 中。

使用 az sshkey create 命令通过指定 SSH 公钥的文件上传 SSH 公钥:

az sshkey create --name "mySSHKey" --public-key "@/home/user/.ssh/7777777777_9999999.pub" --resource-group "myResourceGroup"

列出密钥

使用 az sshkey list 命令列出所有公共 SSH 密钥,可选择指定资源组:

az sshkey list --resource-group "myResourceGroup"

获取公钥

使用 az sshkey show 命令显示公共 SSH 密钥的值:

az sshkey show --name "mySSHKey" --resource-group "myResourceGroup"

后续步骤

若要详细了解如何在 Azure VM 中使用 SSH 密钥,请参阅使用 SSH 密钥连接到 Linux VM