在 Windows 下使用带有 SSH 密钥文件的 GIT 时出现问题

Problems using GIT w/ SSH key file under Windows

我将 GIT 与 shell、Visual Studio 代码和 Visual Studio 2015(社区版)一起使用时遇到问题。

今年早些时候,我开始使用 GIT 和 eGit(当然是在 Eclipse 下),没有任何问题。我在我的服务器上安装了 GIT,创建了一个 ssh 密钥对,经过几次测试后它起作用了(并且仍然起作用)。

但是,现在我想在我的服务器上使用 GIT 和 Visual Studio 代码,也许稍后使用 Visual Studio 2015。

我在这个问题上卡住了:GIT 尝试使用我的 PPK 并要求我提供密码(为空)。如果我输入了错误的短语,它会再次询问,并且只有在我回答正确(只需输入密钥)时才会继续。所以我认为到这里为止一切都还好。但随后它会在服务器上询问 git-用户(正确的那个)的用户密码并失败。为什么?

在我的服务器日志中,我看不到任何关于使用密钥文件登录的条目,只有关于尝试使用密码登录的错误(已禁用)。

如果我将 putty 与该密钥文件一起使用,我就可以连接到我的 GIT 服务器,并且我还会在日志文件中获得一个条目。所以我确定服务器一切正常。

我错过了什么?如果能提供任何帮助,我将不胜感激!

将它与 Visual Studio 2015 一起使用(我无法解决当我按照 Bernardo Pastorelli 的知名博客条目尝试重新编译 GIT 模块时找不到 libssh 的问题) 或保存回车键将是一个奖励,但是,如果我可以在 Shell / Visual Studio 代码下使用 GIT 和密钥文件,我会很高兴。

OS: Windows 7 64 位
GIT 2.10.2.windows.1
VSC:V 1.7.2

TIA!

我将尝试回答您 Post 中更简单的问题:

I would be happy if I could use GIT with key file under Shell

完成后,您可以在此基础上进行构建。


Git for windows 使用 Openssh,因此无法直接使用 putty PPK 文件。

前进的两条路

选项 1:将 PPK 文件转换为 OpenSSH 格式

这样做的步骤:

  1. 在 PuTTYGen 中打开您的私钥
  2. 顶部菜单“转换”->“导出 OpenSSH 密钥”。
  3. 出现提示时保存新的 OpenSSH 密钥。

要为您的 git 服务器使用这个新的 openssh 密钥,请执行以下操作:

打开GitBashshell然后编辑~/.ssh/config(如果不存在则创建~/.ssh/)并定义这个主机:

Host AuxBurgerGitServer
   Hostname whatevers-your-git-remote-is
   User     the-git-user
   IdentityFile ~/.ssh/the-open-ssh-key-exported-before

通过执行 ssh -T AuxBurgerGitServer 来测试它应该不会显示任何错误。

如果你这样做,你应该在引用此主机上的任何存储库时使用上面定义的 HOST。因此,例如,要克隆一个存储库,您可以执行以下操作:

git clone ssh://AuxBurgerGitServer/some-repo-name

选项 2:配置您的 GIT 以使用 pageant

您可以在 pageant 中加载您的 PPK 文件并配置 GIT 使用 pageant 进行身份验证。

为此,您唯一需要做的就是像这样使用设置一个环境变量:
Control Panel → System → Advanced system settings → Environment variables
(或 Windows 10:Control Panel → Search → Environment variables

GIT_SSH=c:\Program Files\Putty\plink.exe