使用 azure cli --generate-ssh-keys 在 Windows 中存储自动生成的 SSH 密钥的位置

Kun*_*dan 6 powershell azure azure-cli azure-devops

我正在尝试从本地机器使用 azure cli 创建 linux VM。我可以使用以下命令创建 VM,但是现在当我想通过 ssh 进入 VM 时,我需要在本地计算机上拥有公钥?

如何获取所需的公钥以使用 连接到 vm ssh azureuser@publicIpAddress?生成的 ssh 密钥在哪里--generate-ssh-keys以及如何获取它?

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --generate-ssh-keys
Run Code Online (Sandbox Code Playgroud)

我使用具有提升权限的 PowerShell 7.0 来运行上述命令

解决了

更新 1:

  • 当您使用--generate-ssh-keysswitch 时,SSH 密钥会在 c:\users\.ssh\ 中生成
  • 如果已经有名称为id_rsa& 的文件,id_rsa.pub那么它可能会发生冲突,您可以使用另一个开关--ssh-key-values /path/to/public/key来指定不同的文件名
  • 之后,如果Permissions for 'private-key' are too open出现错误,请按照此处提到的步骤操作

Roa*_*ner 3

来自MSDN--generate-ssh-keys

如果缺少,则生成 SSH 公钥和私钥文件。密钥将存储在 ~/.ssh 目录中。

如果不存在,默认情况下会在目录中创建私有id_rsa和公共id_rsa.pubSSH 密钥对。~/.ssh如果您在该位置已有 SSH 密钥,它将仅使用这些密钥而不会覆盖它们。

在 Windows 上,这是C:\Users\username\.ssh目录。

此外,您还可以使用以下命令传入特定的 SSH 公钥路径--ssh-key-values

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image UbuntuLTS \
  --admin-username azureuser \
  --ssh-key-values /path/to/public/key
Run Code Online (Sandbox Code Playgroud)

如果您在另一个位置使用 .ssh 创建了 SSH 密钥,这尤其有用ssh-keygen

正如@Ash在评论中指出的那样,您可以查看在部署期间自动生成密钥以获取更多信息。