提问者:小点点

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


我一直在使用Puttygen为Azure Linux虚拟机生成SSH密钥对。最近我发现openssh在Windows 10上可用,我可以在Windows 10 CMD上使用“ssh-keygen”命令并生成私钥和公钥。

我试过了,但没有成功。

根据文章点击这里,要求我们使用下面的命令,它成功完成。它在一个位置导出私钥和公钥。但当我在putty中加载私钥并连接到服务器时,它会抛出错误

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:

有人在windows 10上尝试过这种方法来生成密钥吗?


共2个答案

匿名用户

您已经使用ssh-keygen创建了一个名为id\u rsa的私钥文件。ppk。然而,这是一个OpenSSH格式的私钥,需要转换为Putty自己的格式才能在Putty中使用。

您的选择包括:

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

匿名用户

对于Linux(例如Ubuntu),可以按如下方式安装命令行puttygen:

# sudo apt install putty-tools

... 并从本地ssh密钥id\u rsa生成putty版本id\u rsa。ppk如下:

# puttygen id_rsa -O private -o id_rsa.ppk