Windows 版 (Tortoise)Git 的 key 处理实现让我感到困惑。据我了解,您可以使用 ssh.exe
来实现(git 自己的 ssh 程序),然后您可以在 ssh_config
中为每个主机选择一个 ssh key 。在“伪造的”主目录中。对我来说,这并不适用,因为我有多个 Bitbucket 帐户,使用不同的 key ,但都使用相同的主机。
那就有办法用 TortoiseGitPlink
。基本上,您使用 putty 生成的 key 设置选美比赛,并让 TortoiseGit 使用该 key - 环境变量 SSH_GIT
设置为您的 TortoiseGitPlink.exe)。
现在我的问题如下:我刚刚使用 ssh-keygen -t rsa -f ~/.ssh/rsa_key
创建了一个具有默认选项的 ssh2 rsa key GitBash 中的命令。我尝试将此文件加载到 pageant.exe
通过使用它的 GUI。我收到错误:Couldn't load this key (OpenSSH-SSH-2 private key)
。
这个键有什么问题?在 GitBash 中制作的它应该遵守所有标准的 openSSH 指南。 PuTTY key 和 openSSH key 存在差异,这是否正确?
最佳答案
Pageant 只能加载 PuTTY 格式 (.ppk
) 的 key 。
如果您尝试加载仍能被 PuTTY 工具识别的不同格式的 key ,您会收到上述错误消息:
Couldn't load this key (OpenSSH-SSH-2 private key)
您需要use the PuTTYgen to convert the key从 OpenSSH 格式到 PuTTY 格式。如果 Pageant 识别出该文件格式,PuTTYgen 可以对其进行转换。
- 运行 PuTTYgen;
- 按Load加载OpenSSH格式的私钥;
- 按保存私钥将私钥保存为
.ppk
格式; - 现在您可以将
.ppk
格式的私钥加载到 Pageant 中。
或者更简单,使用 PuTTYgen 直接以 PuTTY 格式创建 key ,而不是使用 ssh-keygen
。
请参阅 PuTTY 愿望 list ,了解其拥有自己的 key 格式的原因:
https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats.html
请注意,我认为 SSH-2 私钥文件格式没有标准。
关于git-bash - Pageant 不加载使用 GitBash 生成的 SSH-2 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27129904/