71

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

然后有一种使用方法TortoiseGitPlink。您基本上使用腻子生成的密钥设置了选美比赛,并让 TortoiseGit 使用该密钥 - 将环境变量SSH_GIT设置为您的 TortoiseGitPlink.exe)。

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

这把钥匙有什么问题?在 GitBash 中制作,它应该遵守所有标准的 openSSH 指南。puTTY 密钥和 openSSH 密钥存在差异是否正确?

4

4 回答 4

116

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

如果您尝试加载其他格式的密钥,但 PuTTY 工具仍可识别,您会收到上述错误消息:

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

您需要使用 PuTTYgen 将密钥从 OpenSSH 格式转换为 PuTTY 格式。如果选美识别文件格式,PuTTYgen 可以转换它。

  • 运行腻子;
  • Load加载 OpenSSH 格式的私钥;
  • 保存私钥.ppk格式保存私钥;
  • 现在您可以将格式的私钥加载.ppk到 Pageant。

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


查看 PuTTY 愿望清单,因为它有自己的密钥格式:
https ://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats.html

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

于 2014-11-25T15:17:55.217 回答
42

如果显示此错误,PuTTY 不理解 id_rsa 私钥: 在此处输入图像描述

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

  1. 打开 PuTTY 密钥生成器(开始-> 搜索“puttygen”)
  2. 您将需要导入 RSA 私钥。为此,请打开“转换”菜单 >“导入密钥”。 在此处输入图像描述
  3. 选择要转换的 RSA 私钥。 在此处输入图像描述
  4. 点击“保存私钥”。请注意,您也可以将其保存为另一种格式。 在此处输入图像描述
  5. 然后另存为“id_rsa.ppk” 在此处输入图像描述
  6. Open Pageant - PuTTY 身份验证代理(如果尚未打开) 在此处输入图像描述
  7. 点击“添加密钥”
  8. 选择您的转换后的私钥。 在此处输入图像描述
  9. 如您所见,PuTTY 现在可以在“Pageant Key List”中识别它。 在此处输入图像描述
于 2017-05-05T08:55:54.003 回答
0

我现在仍然没有问题。变量SSH_GIT设置为TortoiseGitPlink.exe。我用 git bash 做了一个密钥对

ssh-keygen -o

我用 PUTTYGen 加载了密钥并将其转换为 *ppk 版本。将tortioseGit设置中的密钥和公钥保存到我的github帐户,但我仍然收到输入我的凭据的请求,然后我的推送被拒绝。有趣的是,在我的笔记本电脑上它可以工作。我很确定我在笔记本电脑上做了所有的事情。

于 2021-09-21T16:13:37.387 回答
0

如果您收到错误,Couldnt load private key (unrecognized cipher name),您需要先从您的私钥中删除密码,然后才能转换它。

有人在这里写了一篇文章来描述如何做到这一点

于 2022-03-04T17:50:43.757 回答