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

aqu*_*shi 12 linux windows ssh azure azure-virtual-machine

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

我试过这个,但没有成功。

根据文章单击此处要求我们使用以下命令并成功完成。它在一个位置导出私钥和公钥。但是当我在腻子中加载私钥并连接到我的服务器时,它会引发错误

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

下面是我用来在 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:
Run Code Online (Sandbox Code Playgroud)

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

Rup*_*Rup 27

您已经使用 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 中,在“转换”菜单中选择“导入”并加载 id_rsa.ppk
    2. “保存私钥”到不同的文件
    3. 在连接属性菜单上使用这个新文件与 Putty,或者运行 Pageant(Putty 密钥代理)并“添加密钥”新文件。(例如,您可以在“启动”菜单中创建选美的快捷方式,并将密钥文件名作为命令行参数指定,以便为您自动加载。)


tho*_*dge 5

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

# sudo apt install putty-tools
Run Code Online (Sandbox Code Playgroud)

...并从本地 ssh 密钥id_rsa生成到 putty 版本id_rsa.ppk,如下所示:

# puttygen id_rsa -O private -o id_rsa.ppk
Run Code Online (Sandbox Code Playgroud)