使用 azure cli --generate-ssh-keys 自动生成的 SSH 密钥存储在 Windows 中的什么位置
Where are auto generated SSH keys stored in Windows using azure cli --generate-ssh-keys
我正在尝试从本地计算机使用 azure cli 创建 linux VM。我能够使用以下命令创建 VM,但是现在当我想通过 ssh 进入 VM 时,我需要在我的本地机器上有 public 密钥?
如何获得使用 ssh azureuser@publicIpAddress
连接到虚拟机所需的 public 密钥? --generate-ssh-keys
生成的 ssh 密钥在哪里?如何获取?
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
我使用具有提升权限的 PowerShell 7.0 运行 上面的命令
已解决
更新 1:
- 当您使用
--generate-ssh-keys
开关 时,会在 c:\users\.ssh\ 中生成 SSH 密钥
- 如果已经有名称为
id_rsa
和 id_rsa.pub
的文件,那么它可能会发生冲突,您可以使用另一个开关 --ssh-key-values /path/to/public/key
来指定不同的文件名
- 之后,如果您收到
Permissions for 'private-key' are too open
错误,请按照提到的步骤进行操作 here
您可以在
下找到它
C:\Users\<<your-user-name>>\.ssh
当您第一次创建 VM 时,您也会收到以下消息
SSH key files 'C:\Users\<<your-user-name>>\.ssh\id_rsa' and
'C:\Users\<<your-user-name>>\.ssh\id_rsa.pub' have been generated under ~/.ssh
to allow SSH access to the VM. If using machines without permanent
storage, back up your keys to a safe location.
对于后续的 VM 创建,使用相同的密钥对,您不会再看到该消息。
(我使用 Windows OS 进行了验证,通过 Azure CLI 使用 RedHat:RHEL:7-RAW:7.4.2018010506 图像创建了一个 linux VM)
来自 MSDN 对于 --generate-ssh-keys
:
Generate SSH public and private key files if missing. The keys will be stored in the ~/.ssh directory.
默认情况下会在 ~/.ssh
目录中创建私有 id_rsa
和 public id_rsa.pub
SSH 密钥对(如果它们不存在)。如果您在该位置已经有现有的 SSH 密钥,它将只使用这些密钥并且 不会 覆盖它们。
在 Windows 上,这是 C:\Users\username\.ssh
目录。
此外,您还可以通过 --ssh-key-values
:
传入特定的 SSH public 密钥路径
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--ssh-key-values /path/to/public/key
如果您使用 ssh-keygen
在另一个位置创建了 SSH 密钥,这将特别有用。
如 pointed out in the comments, you could have a look at Generate keys automatically during deployment 了解更多信息。
我正在尝试从本地计算机使用 azure cli 创建 linux VM。我能够使用以下命令创建 VM,但是现在当我想通过 ssh 进入 VM 时,我需要在我的本地机器上有 public 密钥?
如何获得使用 ssh azureuser@publicIpAddress
连接到虚拟机所需的 public 密钥? --generate-ssh-keys
生成的 ssh 密钥在哪里?如何获取?
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
我使用具有提升权限的 PowerShell 7.0 运行 上面的命令
已解决
更新 1:
- 当您使用
--generate-ssh-keys
开关 时,会在 c:\users\.ssh\ 中生成 SSH 密钥
- 如果已经有名称为
id_rsa
和id_rsa.pub
的文件,那么它可能会发生冲突,您可以使用另一个开关--ssh-key-values /path/to/public/key
来指定不同的文件名 - 之后,如果您收到
Permissions for 'private-key' are too open
错误,请按照提到的步骤进行操作 here
您可以在
下找到它C:\Users\<<your-user-name>>\.ssh
当您第一次创建 VM 时,您也会收到以下消息
SSH key files 'C:\Users\<<your-user-name>>\.ssh\id_rsa' and 'C:\Users\<<your-user-name>>\.ssh\id_rsa.pub' have been generated under ~/.ssh to allow SSH access to the VM. If using machines without permanent storage, back up your keys to a safe location.
对于后续的 VM 创建,使用相同的密钥对,您不会再看到该消息。
(我使用 Windows OS 进行了验证,通过 Azure CLI 使用 RedHat:RHEL:7-RAW:7.4.2018010506 图像创建了一个 linux VM)
来自 MSDN 对于 --generate-ssh-keys
:
Generate SSH public and private key files if missing. The keys will be stored in the ~/.ssh directory.
默认情况下会在 ~/.ssh
目录中创建私有 id_rsa
和 public id_rsa.pub
SSH 密钥对(如果它们不存在)。如果您在该位置已经有现有的 SSH 密钥,它将只使用这些密钥并且 不会 覆盖它们。
在 Windows 上,这是 C:\Users\username\.ssh
目录。
此外,您还可以通过 --ssh-key-values
:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--ssh-key-values /path/to/public/key
如果您使用 ssh-keygen
在另一个位置创建了 SSH 密钥,这将特别有用。
如