如何安装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上执行相同操作,请按照下列步骤操作:
- 启动PuTTYGen。
- 单击“加载”。
- 选择您的私钥并输入密码。
- 从“转换”菜单中,选择“导出OpenSSH密钥”。
- 选择目标文件名。
如何在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_rsa
或id_dsa
-
对于其他用户将该密钥文件复制到
/home/user/.ssh/
作为id_rsa
或id_dsa
注意 :
- 无需编辑
authorized_keys
。 - 我正在使用amazon linux
- 文件权限0600