Assaf Lavie Asked: 2010-11-30 07:12:26 +0800 CST2010-11-30 07:12:26 +0800 CST 2010-11-30 07:12:26 +0800 CST 如何安装 PuTTYgen 生成的 SSH 私钥? 772 我通过将 PuTTYgen 生成的公钥添加到authorized_keys文件中来设置我的 Linux 服务器以接受来自我家 PC 的连接。 现在我正在尝试连接到同一台机器,但这次是从另一台 Ubuntu 机器上。我必须使用相同的私钥(出于奇怪的原因,不要问..)而且我不太明白如何在我的客户端 Ubuntu 上安装它。 我必须将其转换为其他格式吗? ssh openssh putty 9 个回答 Voted Andrew Stacey 2010-11-30T12:25:12+08:002010-11-30T12:25:12+08:00 巧合的是,我不得不这样做。您确实需要将密钥转换为 OpenSSH 格式。这样做的命令是: ssh-keygen -i -f puttygen_key > openssh_key 然后您可以像使用普通 SSH 密钥一样复制openssh_keyin的内容。.ssh/authorized_keys 该-i选项是告诉ssh-keygen进行转换的选项。该-f选项告诉它在哪里可以找到要转换的密钥。 这适用于未加密的密钥。公钥未加密,但私钥可能已加密。我不确定是否有办法解密私钥,转换它,然后重新加密它。正如其他答案所暗示的那样,使用新密钥可能会更容易(我建议使用ssh-agent尽管这与当前问题正交)。 hheimbuerger 2010-12-10T14:53:23+08:002010-12-10T14:53:23+08:00 Andrew Stacey 解释了如何在 Linux 上将密钥转换为 OpenSSH 格式。 如果您想在 Windows 上执行相同的操作,请按照以下步骤操作: 启动 PuTTYGen。 点击“加载”。 选择您的私钥并输入密码。 从“转换”菜单中,选择“导出 OpenSSH 密钥”。 选择目标文件名。 Best Answer theTuxRacer 2010-11-30T08:18:15+08:002010-11-30T08:18:15+08:00 我不确定您的私钥是否可以在 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。 user18617 2011-05-26T23:32:27+08:002011-05-26T23:32:27+08:00 如何在 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 Martin Prikryl 2015-02-13T04:14:19+08:002015-02-13T04:14:19+08:00 PuTTY/PuTTYgen 使用自己专有的密钥对格式。它在 Linux 上不起作用,在 Linux 上,密钥的 OpenSSH 格式占主导地位。 在 PuTTYgen 中,您可以直接查看(并复制 + 粘贴) OpenSSH文件使用的格式的公钥。authorized_keys 您可以使用按钮保存公钥以格式 (RFC 4716)保存公钥。.pub在 Linux 上,该文件通常命名为id_rsa.pub(或id_dsa.pub)。但这通常是不需要的。 使用Conversions > Export OpenSSH 密钥以OpenSSH 格式导出私钥。在 Linux 上,该文件通常命名为id_rsa(或id_dsa)并存储在.ssh文件夹中。 请参阅官方使用 PuTTYgen,PuTTY 密钥生成器。 您还可以使用 Linux 版本的 PuTTYgen 进行转换。Linux 版本是命令行,与 Windows 版本相反。 puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa 请参阅 Linuxputtygen手册页。 P-Kumar 2016-12-07T22:12:00+08:002016-12-07T22:12:00+08:00 我找到了一个更清晰的解决方案。 在puttygen创建密钥时,导航到顶部菜单 - 转换并单击导出 openssh 密钥 文件内容将以 -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- 对于 root 用户 将该密钥文件复制到/root/.ssh/asid_rsa或id_dsa 对于其他用户 将该密钥文件复制到/home/user/.ssh/asid_rsa或id_dsa 笔记 : 无需编辑authorized_keys。 我正在使用亚马逊 Linux 文件权限 0600 ErnestA 2013-02-22T19:58:48+08:002013-02-22T19:58:48+08:00 * *请注意并确保您可以通过控制台访问该框,因为如果您操作不当,您将无法再次通过 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 服务器上完成了这项工作,并且运行流畅。 George Valkov 2020-06-09T05:44:56+08:002020-06-09T05:44:56+08:00 安装 OpenSSH 私钥的最简单方法是创建或编辑~/.ssh/config,如下所述。您需要将 PuTTY 私钥导出为 OpenSSH 密钥。 在一个客户端上使用多个 SSH 私钥的最佳方式 Host myshortname realname.example.com HostName realname.example.com IdentityFile ~/.ssh/realname_rsa # private key for realname User remoteusername Host myother realname2.example.org HostName realname2.example.org IdentityFile ~/.ssh/realname2_rsa # different private key for realname2 User remoteusername 使用 OpenSSH 时,这适用于 Linux、macOS、Windows、GIT。 binish 2019-06-08T16:27:25+08:002019-06-08T16:27:25+08:00 我不确定这个线程是否仍然处于活动状态,但我偶然发现了现在支持 Ubuntu 内核的 Windows 10 周年纪念版的类似问题。我以前使用 Putty 连接到 Linux 机器。要以 linux 格式生成 id_rsa,请使用 puttykeygen 并加载您的 putty 私钥,然后单击转换并选择第二个选项。 Putty KeyGenerator 转换 打开新生成的密钥文件并复制其所有内容,确保您的内容以-----BEGIN RSA PRIVATE KEY-----开头并以-----END RSA PRIVATE KEY-----结尾 vi id_rsa 在你的 ~/.ssh 目录中并粘贴复制的内容,这是必需的,因为 linux 否则将无法理解文件的内容。 就是这样,尝试 ssh 到远程服务器,它应该可以工作。
巧合的是,我不得不这样做。您确实需要将密钥转换为 OpenSSH 格式。这样做的命令是:
然后您可以像使用普通 SSH 密钥一样复制
openssh_key
in的内容。.ssh/authorized_keys
该
-i
选项是告诉ssh-keygen
进行转换的选项。该-f
选项告诉它在哪里可以找到要转换的密钥。这适用于未加密的密钥。公钥未加密,但私钥可能已加密。我不确定是否有办法解密私钥,转换它,然后重新加密它。正如其他答案所暗示的那样,使用新密钥可能会更容易(我建议使用
ssh-agent
尽管这与当前问题正交)。Andrew Stacey 解释了如何在 Linux 上将密钥转换为 OpenSSH 格式。
如果您想在 Windows 上执行相同的操作,请按照以下步骤操作:
我不确定您的私钥是否可以在 ubuntu 中使用,但值得一试。只需复制密钥以
/home/yourName/.ssh/
将私钥命名为id_rsa
,将公钥命名为id_rsa.pub
。如果这不起作用,那么您可以使用创建自己的 ssh 密钥对
ssh-keygen
并将新的公钥复制到服务器,然后 ssh 如下没玩过,不过听说ssh-agent也可以用来管理ssh-keys。
如何在 Ubuntu 中将 Putty 密钥对重新用作 OpenSSH 密钥:
由于步骤 4 的目的是将您的公钥添加到 *~./ssh/authorized_keys*,因此您可以像这样使用您的 Putty 密钥,而不是执行 4 作为中间步骤:
PuTTY/PuTTYgen 使用自己专有的密钥对格式。它在 Linux 上不起作用,在 Linux 上,密钥的 OpenSSH 格式占主导地位。
在 PuTTYgen 中,您可以直接查看(并复制 + 粘贴) OpenSSH文件使用的格式的公钥。
authorized_keys
您可以使用按钮保存公钥以格式 (RFC 4716)保存公钥。
.pub
在 Linux 上,该文件通常命名为id_rsa.pub
(或id_dsa.pub
)。但这通常是不需要的。使用Conversions > Export OpenSSH 密钥以OpenSSH 格式导出私钥。在 Linux 上,该文件通常命名为
id_rsa
(或id_dsa
)并存储在.ssh
文件夹中。请参阅官方使用 PuTTYgen,PuTTY 密钥生成器。
您还可以使用 Linux 版本的 PuTTYgen 进行转换。Linux 版本是命令行,与 Windows 版本相反。
请参阅 Linux
puttygen
手册页。我找到了一个更清晰的解决方案。
在
puttygen
创建密钥时,导航到顶部菜单 - 转换并单击导出 openssh 密钥文件内容将以
对于 root 用户 将该密钥文件复制到
/root/.ssh/
asid_rsa
或id_dsa
对于其他用户 将该密钥文件复制到
/home/user/.ssh/
asid_rsa
或id_dsa
笔记 :
authorized_keys
。* *请注意并确保您可以通过控制台访问该框,因为如果您操作不当,您将无法再次通过 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 服务器上完成了这项工作,并且运行流畅。
安装 OpenSSH 私钥的最简单方法是创建或编辑
~/.ssh/config
,如下所述。您需要将 PuTTY 私钥导出为 OpenSSH 密钥。在一个客户端上使用多个 SSH 私钥的最佳方式
使用 OpenSSH 时,这适用于 Linux、macOS、Windows、GIT。
我不确定这个线程是否仍然处于活动状态,但我偶然发现了现在支持 Ubuntu 内核的 Windows 10 周年纪念版的类似问题。我以前使用 Putty 连接到 Linux 机器。要以 linux 格式生成 id_rsa,请使用 puttykeygen 并加载您的 putty 私钥,然后单击转换并选择第二个选项。
Putty KeyGenerator 转换
打开新生成的密钥文件并复制其所有内容,确保您的内容以-----BEGIN RSA PRIVATE KEY-----开头并以-----END RSA PRIVATE KEY-----结尾
vi id_rsa 在你的 ~/.ssh 目录中并粘贴复制的内容,这是必需的,因为 linux 否则将无法理解文件的内容。
就是这样,尝试 ssh 到远程服务器,它应该可以工作。