通过将PuTTYgen生成的公钥添加到authorized_keys
文件中,我将Linux服务器设置为接受来自家用PC的连接。
现在,我尝试连接到同一台计算机,但是这次是从另一台Ubuntu计算机连接。我必须使用相同的私钥(出于奇怪的原因,不要问..),而且我不太了解如何在客户端Ubuntu上安装它。
我必须将其转换为其他格式吗?
通过将PuTTYgen生成的公钥添加到authorized_keys
文件中,我将Linux服务器设置为接受来自家用PC的连接。
现在,我尝试连接到同一台计算机,但是这次是从另一台Ubuntu计算机连接。我必须使用相同的私钥(出于奇怪的原因,不要问..),而且我不太了解如何在客户端Ubuntu上安装它。
我必须将其转换为其他格式吗?
Answers:
我不确定您的私钥是否可以在ubuntu中使用,但是值得一试。只需复制密钥即可/home/yourName/.ssh/
将私钥命名为id_rsa
,将公钥命名为id_rsa.pub
。
如果这不起作用,则可以使用创建自己的ssh密钥对ssh-keygen
,并将新的公共密钥复制到服务器,然后按以下方式使用ssh
ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>
我还没有玩过它,但是我听说ssh-agent也可以用来管理ssh-key。
id_rsa
文件(通过在PuTTYgen中转换密钥)
碰巧的是,我只需要这样做。您确实需要将密钥转换为OpenSSH格式。这样做的命令是:
ssh-keygen -i -f puttygen_key > openssh_key
那么您可以像使用普通SSH密钥一样复制openssh_key
in 的内容.ssh/authorized_keys
。
该-i
选项是告诉ssh-keygen
您进行转换的选项。该-f
选项告诉它在哪里找到要转换的密钥。
这适用于未加密的密钥。公钥未加密,但私钥可能已加密。我不确定是否有一种方法可以对私钥进行解密,转换然后再对其进行加密。正如其他答案所建议的那样,使用新键可能会更容易(并且我建议使用,ssh-agent
尽管它与当前问题正交)。
uudecode failed
),需要遵循怎样使用PuTTYgen(Windows)中成的ssh-agent和keychain(Linux)的使用密钥对生成密钥对SSH转换
puttygen_key
应该是您的公钥,而不是私钥(* .ppk)。
Andrew Stacey解释了如何在Linux上将密钥转换为OpenSSH格式。
如果要在Windows上执行相同的操作,请按照下列步骤操作:
如何在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
mykey-pub.ppk
非常令人困惑,因为.ppk
文件具有完全不同的格式并且用于密钥对(而不仅仅是公共密钥)。
PuTTY / PuTTYgen使用自己专有的密钥对格式。在使用OpenSSH密钥格式的Linux上,它将无法使用。
在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
请参见Linux puttygen
手册页。
* *请注意并确保您对控制台具有控制台访问权限,因为如果操作不正确,您将无法再次进入,直到从控制台修复它为止。
该过程比您想象的要容易得多。再次加载您在puttygen中生成的公钥/私钥对。在puttygen中,您会注意到屏幕中间的窗口显示:“用于粘贴到Open SSHauthorized_keys文件的公钥:”。
突出显示该框的所有内容,然后按Ctrl-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服务器上完成了此任务,并且运行流畅。
我不确定该线程是否仍然处于活动状态,但是我偶然发现了Windows 10周年纪念版的类似问题,该版本现在支持Ubuntu内核。我以前使用Putty连接到Linux机器。要以Linux格式生成id_rsa,请使用puttykeygen并加载您的putty私钥,然后单击conversion并选择第二个选项。
打开新生成的密钥文件并复制所有内容,请确保您的内容以:----- BEGIN RSA PRIVATE KEY -----开头,并以----- END RSA PRIVATE KEY -----结尾
在〜/ .ssh目录中的vi id_rsa并粘贴复制的内容,这是必需的,因为linux否则将无法理解文件的内容。
就是这样,尝试ssh到远程服务器,它应该可以工作。