如何安装puttygen生成的ssh私钥?

我将我的linux服务器设置为通过将puttygen生成的公钥添加到authorized_keys文件来接受来自我家PC的连接。

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

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

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

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

 ssh -i ~/.ssh/id_rsa_ubuntu.pub  

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

巧合的是,我不得不这样做。 您需要将密钥转换为OpenSSH格式。 这样做的命令是:

 ssh-keygen -i -f puttygen_key > openssh_key 

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

-i选项告诉ssh-keygen进行转换。 -f选项告诉它在哪里找到要转换的键。

这适用于未加密的密钥。 公钥是未加密的,但私有密钥可能是加密的。 我不确定是否有办法解密私钥,转换它,然后重新调整它。 另一个答案表明,使用新密钥可能更容易(我建议使用ssh-agent尽管这与当前问题正交)。

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

如果要在Windows上执行相同操作,请按照下列步骤操作:

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

如何在Ubuntu中重用您的Putty密钥对作为OpenSSH密钥:

 apt-get install putty-tools #Install Putty tools in Linux cd /my-putty-keys puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub 

由于步骤4的目的是将您的公钥添加到*〜。/ ssh / authorized_keys *,因此您可以像这样使用您的Putty密钥,而不是将4作为中间步骤:

 puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys 

PuTTY / PuTTYgen使用自己专有的密钥对格式。 它不适用于Linux的OpenSSH格式的密钥。

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

  • 您可以使用按钮保存公钥.pub格式保存公钥(RFC 4716)。 在Linux上,该文件通常名为id_rsa.pub (或id_dsa.pub )。 但这通常不需要。

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

请参阅官方使用PuTTY密钥生成器PuTTYgen 。

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

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

请参阅Linux puttygen手册页 。

* *请小心并确保您可以通过控制台访问该框,因为如果您没有正确操作,则在从控制台修复之前,您将无法再次进行ssh。

这个过程比你想象的容易得多。 再次加载您在puttygen中生成的公钥/私钥对。 在puttygen中,你会注意到屏幕中间有一个窗口,上面写着:“粘贴到Open SSH authorized_keys文件的公钥:”。

突出显示该框的全部内容,然后按control-c进行复制。

SSH进入你的linux框并将其粘贴到“/home/username/.ssh/authorized_keys”文件中。 我更喜欢使用nano,只需右键单击即可将其粘贴。确保所有内容都保持在一行。

根据需要修改/ etc / sshd_config文件并重新启动sshd服务:“service ssh restart”

如果你需要一个示例sshd_config文件,请告诉我,我可以发布我的。

我已经在Ubuntu 8.04,10.04和12.04 LTS服务器上完成了这项工作,并且它非常灵活。

我发现了一个更明确的解决方案

puttygen创建一个键,然后导航到顶层菜单 – 转换并单击导出openssh键

文件内容将以开头和结尾开头

 -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- 
  • 对于root用户将该密钥文件复制到/root/.ssh/作为id_rsaid_dsa

  • 对于其他用户将该密钥文件复制到/home/user/.ssh/作为id_rsaid_dsa

注意 :

  1. 无需编辑authorized_keys
  2. 我正在使用amazon linux
  3. 文件权限0600