Azure Linux VM 上的 OpenSSH SSH-2 私钥(旧 PEM 格式)

OpenSSH SSH-2 private key (old PEM format) on Azure Linux VM

我一直在使用 Puttygen 为 Azure Linux VM 生成 SSH 密钥对。 最近我发现 openssh 在 Windows 10 上可用,我可以在 Windows 10 CMD 上使用 "ssh-keygen" 命令并生成私有和 Public 密钥。

我试过了,但没有成功。

根据文章 click here 要求我们使用以下命令并成功完成。它在某个位置导出私有密钥和 public 密钥。但是当我在腻子中加载私钥并连接到我的服务器时,它会抛出错误

Unable to use key file "C:\publickey\id_rsa.ppk" (OpenSSH SSH-2 private key (old PEM format))
login as:

下面是我用来在 windows 10

上生成密钥对的命令
C:\Users\xxx>ssh-keygen -t rsa -b 2048 -C "azureuser@vm"
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_rsa): C:\publickey\id_rsa.ppk
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\publickey\id_rsa.ppk.
Your public key has been saved in C:\publickey\id_rsa.ppk.pub.
The key fingerprint is:

有没有人在windows10上试过这个方法来生成密钥?

您已使用 ssh-keygen 创建了一个名为 id_rsa.ppk 的私钥文件。但是这是一个OpenSSH格式的私钥,需要转换成Putty自己的格式才能在Putty中使用。

您的选择是:

  1. 将此密钥用于命令行 SSH(格式正确)。你也可以
    1. 在命令行中指定文件,例如ssh -i id_rsa.ppk azureuser@vm
    2. 创建一个文件夹 C:\Users\Aquib\.ssh 并将其移动到 C:\Users\Aquib\.ssh\id_rsa(无扩展名):ssh 现在将默认加载此文件以用于您尝试连接的所有服务器
    3. 如果您不想将此用于所有服务器,或者例如如果您已经有一个与 git 一起使用的默认 id_rsa,您可以设置一个 C:\Users\Aquib\.ssh\config 文件,告诉 SSH 在哪里可以找到密钥并告诉它应该将它用于哪些服务器.
  2. 将此文件转换为与 Putty 一起使用的正确格式:
    1. 在 Puttygen 中,在 'Conversions' 菜单中选择 'Import' 并加载 id_rsa.ppk
    2. 'Save private key' 到另一个文件
    3. 在连接属性菜单或 运行 Pageant(Putty 密钥代理)和 'Add key' 新文件中,将此新文件与 Putty 一起使用。 (例如,您可以在“启动”菜单中创建选美的快捷方式,并将密钥文件名作为命令行参数给它,以便自动为您加载。)

对于Linux(例如Ubuntu),您可以像这样安装命令行puttygen:

# sudo apt install putty-tools

... 并从您的本地 ssh-key id_rsa 生成到 putty 版本 id_rsa.ppk 之类的这个:

# puttygen id_rsa -O private -o id_rsa.ppk