如何安装 PuTTYgen 生成的 SSH 私钥?

如何安装 PuTTYgen 生成的 SSH 私钥?

我通过将 PuTTYgen 生成的公钥添加到文件中来设置我的 Linux 服务器以接受来自家用电脑的连接authorized_keys

现在我尝试连接到同一台机器,但这次是从另一台 Ubuntu 机器。我必须使用相同的私钥(出于一个奇怪的原因,不要问..)而且我不太明白如何在我的客户端 Ubuntu 上安装它。

我是否必须将其转换为其他格式?

答案1

巧合的是,我刚好需要这样做。您确实需要将密钥转换为 OpenSSH 格式。执行此操作的命令是:

ssh-keygen -i -f puttygen_key > openssh_key

然后您可以像使用普通 SSH 密钥一样将内容复制openssh_key到。.ssh/authorized_keys

-i选项是指示ssh-keygen进行转换的选项。该-f选项告诉它在哪里找到要转换的密钥。

这适用于未加密密钥。公钥未加密,但私钥可能已加密。我不确定是否有办法解密私钥,将其转换,然后重新加密。使用新密钥可能更容易,正如其他答案所建议的那样(尽管这与ssh-agent当前问题无关,但我建议使用它)。

答案2

Andrew Stacey 解释道如何在 Linux 上将密钥转换为 OpenSSH 格式。

如果您想在 Windows 上执行相同操作,请按照以下步骤操作:

  1. 启动 PuTTYGen。
  2. 点击“加载”。
  3. 选择您的私钥并输入密码。
  4. 从“转换”菜单中,选择“导出 OpenSSH 密钥”。
  5. 选择目标文件名。

答案3

我不确定你的私钥是否可以在 ubuntu 中使用,但值得一试。只需复制密钥,将/home/yourName/.ssh/私钥命名为id_rsa,将公钥命名为id_rsa.pub

如果这不起作用,那么你可以使用创建自己的 ssh 密钥对,ssh-keygen并将新的公钥复制到服务器,然后按如下方式进行 ssh

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

我还没有玩过,但是听说 ssh-agent 也可以用于管理 ssh-keys。

答案4

PuTTY/PuTTYgen 使用其专有的密钥对格式。它不适用于 Linux,因为 Linux 上主要使用 OpenSSH 密钥格式。

  • 在 PuTTYgen 中,您可以直接查看(并复制 + 粘贴)民众采用 OpenSSH 文件使用的格式的密钥authorized_keys

  • 您可以使用按钮保存公钥拯救民众格式中的关键字.pub(RFC 4716)。在 Linux 上,文件通常命名为id_rsa.pub(或id_dsa.pub)。但这通常不是必需的。

  • 使用转换 > 导出 OpenSSH 密钥导出私人的OpenSSH 格式的密钥。在 Linux 上,该文件通常命名为id_rsa(或id_dsa) 并存储在.ssh文件夹中。

参见官方使用 PuTTYgen,PuTTY 密钥生成器

您还可以使用 Linux 版本的 PuTTYgen 进行转换。Linux 版本是命令行,与 Windows 版本相反。

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

查看 Linuxputtygen手册页

相关内容