我通过将 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 上执行相同操作,请按照以下步骤操作:
- 启动 PuTTYGen。
- 点击“加载”。
- 选择您的私钥并输入密码。
- 从“转换”菜单中,选择“导出 OpenSSH 密钥”。
- 选择目标文件名。
答案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
文件夹中。
您还可以使用 Linux 版本的 PuTTYgen 进行转换。Linux 版本是命令行,与 Windows 版本相反。
puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa
查看 Linuxputtygen
手册页。