如何安装 PuTTYgen 生成的 SSH 私钥?

Ass*_*vie 61 ssh putty openssh

我通过将 PuTTYgen 生成的公钥添加到authorized_keys文件中来设置我的 Linux 服务器以接受来自我家用 PC 的连接。

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

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

And*_*cey 41

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

ssh-keygen -i -f puttygen_key > openssh_key
Run Code Online (Sandbox Code Playgroud)

然后您可以像使用普通的 SSH 密钥一样将openssh_keyin的内容复制到.ssh/authorized_keys

-i选项是告诉ssh-keygen进行转换的选项。该-f选项告诉它在哪里可以找到要转换的密钥。

这适用于未加密的密钥。公钥未加密,但私钥可能已加密。我不确定是否有办法解密私钥,转换它,然后重新加密它。正如其他答案所建议的那样,使用新密钥可能更容易(ssh-agent尽管我建议使用它与当前问题正交)。

  • 试过了,没有用(错误`uudecode failed`),需要遵循[如何将使用PuttyGen(Windows)生成的SSH密钥对转换为ssh-agent和KeyChain(Linux)使用的密钥对](http:// stackoverflow.com/a/2224204/802365) (3认同)

hhe*_*ger 30

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

如果您想在 Windows 上执行相同操作,请执行以下步骤:

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


the*_*cer 29

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

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

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>
Run Code Online (Sandbox Code Playgroud)

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

  • 这个答案完全缺乏信息,你如何获得`id_rsa`文件(通过在PuTTYgen中转换密钥) (6认同)
  • 这在 ubuntu 中确实有效。但是,如果您已经有一个现有的 id_rsa 密钥(通过在其上复制新密钥),请确保不要覆盖现有的 id_rsa 密钥,除非您知道您不使用旧密钥。 (3认同)

小智 26

如何在 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
Run Code Online (Sandbox Code Playgroud)

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

puttygen ?L mykey-sec.ppk >> $HOME/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

  • 命名 **public** 密钥(大概是 RFC 4716 格式)`mykey-pub.ppk` 非常令人困惑,因为 `.ppk` 文件具有完全不同的格式并且用于密钥对(不仅仅是公钥)。 (3认同)

Mar*_*ryl 9

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文件夹中。

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

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

puttygen mykey.ppk ?O private?openssh ?o id_rsa
Run Code Online (Sandbox Code Playgroud)

请参见 Linuxputtygen手册页