Pageant 不加载用 GitBash 生成的 SSH-2密钥

用 Windows 的(Tortoise) Git 实现密钥处理让我感到困惑。据我所知,您可以使用 ssh.exe(gits 自己的 ssh 程序)实现,然后可以在“伪造的”主目录中为 ssh_config中的每台主机选择一个 ssh 键。对我来说,这实际上并不适用,因为我有多个 Bitbucket 帐户,它们使用不同的键,但都是同一个主机。

然后有一种使用 TortoiseGitPlink的方法。你基本上可以用一个腻子生成的密钥来设置选美比赛,然后让 TortoiseGit 使用这个密钥,并将环境变量 SSH_GIT设置为 tortoiseGitPlink.exe)。

现在我的问题是: 我刚刚在 GitBash 中使用 ssh-keygen -t rsa -f ~/.ssh/rsa_key命令创建了一个带默认选项的 ssh2 rsa 密钥。我尝试使用它的 GUI 将这个文件加载到 pageant.exe中。我得到了错误: Couldn't load this key (OpenSSH-SSH-2 private key)

这把钥匙有什么问题?由 GitBash 制作,它应该遵循所有标准的 openSSH 指南。PuTTY 键和 openSSH 键之间存在差异是否正确?

78108 次浏览

Pageant 只能加载 PuTTY 格式(.ppk)的密钥。

如果您试图以不同的格式加载密钥(PuTTY 工具仍然能够识别这种格式的密钥) ,您将得到上面提到的错误消息:

无法加载此密钥(OpenSSH-SSH-2私钥)

您需要从 OpenSSH 格式到 PuTTY 格式的 使用 PuTTYgen 转换密钥。如果 Pageant 识别了文件格式,PuTTYgen 可以转换它。

  • 运行 PuTTYgen;
  • 装弹加载 OpenSSH 格式的私钥;
  • 保存私钥保存 .ppk格式的私钥;
  • 现在可以将 .ppk格式的私钥加载到 Pageant。

或者更简单,使用 PuTTYgen 以 PuTTY 格式直接创建密钥,而不是使用 ssh-keygen


看看 PuTTY 愿望列表,它有自己的关键格式:
Https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats.html

请注意,我认为 SSH-2私钥文件格式没有标准。

PuTTY 不理解 id _ rsa 私钥,如果它显示这个错误: enter image description here

您需要将私钥转换为. ppk (私钥格式)。

  1. 打开 PuTTY 密钥生成器(开始-> 搜索“ puttygen”)
  2. 您需要导入 RSA 私钥。为此,请打开“转换”菜单 > “导入密钥”。 enter image description here
  3. 选择要转换的 RSA 私钥。 enter image description here
  4. 点击“保存私钥”。注意你也可以保存为另一种格式。 enter image description here
  5. 然后保存为‘ id _ rsa. ppk’ enter image description here
  6. 打开 Pageant-PuTTY 身份验证代理(如果尚未打开) enter image description here
  7. 点击“添加键”
  8. 选择转换后的私钥。 enter image description here
  9. 正如你所看到的,PuTTY 现在在“选美比赛关键列表”中认出了它。 enter image description here

我现在还有问题。 变量 SSH _ GIT设置为 TortoiseGitPlink.exe。 我用 Git bash 做了一对钥匙

ssh-keygen -o

我用 PUTTYGen 加载了密钥,并将其转换为 * ppk 版本。在 tortioseGit 设置和 github 帐户的公钥中保存了密钥,但是我仍然会收到一个输入凭证的请求,然后我的推送被拒绝。 有趣的是,在我的笔记本电脑上它工作。我非常肯定我做的一切像在我的笔记本电脑上。

如果收到错误 无法加载私钥(无法识别的密码名),则需要从私钥中删除密码短语,然后才能对其进行转换。

有人写了一篇文章描述如何做这个 给你