配置msysgit以使用putty / plink

时间:2012-03-26 11:44:41

标签: git putty msysgit plink

为基本问题提前道歉 - 我是git的新手,并且我确信我错过了一些非常简单的东西,有人可以很快回答。

在msysgit安装期间,我指定我想使用PLink而不是OpenSSH作为我的安全shell客户端程序。环境变量'GIT_SSH'设置为'C:\ Program Files(x86)\ PuTTY \ plink.exe',这是plink的正确路径。我试过有没有引号。 bash提示符中的“echo $ GIT_SSH”显示环境变量的正确值。我也可以使用putty通过SSH连接到github,没有任何问题。

在启动pagent并添加我的私钥后,我打开了一个新的git bash窗口并尝试连接到github(github已经有我的公钥并且设置正确 - 我正在使用jquery项目作为快速测试)。尽管指定我想使用PLink并且显然设置了正确的环境变量,但msysgit仍在尝试使用〜/ .ssh目录中的密钥文件。

我已经通过实际将我的私钥放在该目录中并且一切正常(我能够克隆jquery存储库而没有任何问题)确认了这一点,但我真的很想得到这个设置所以我如果可能,可以通过putty管理我的私钥。

不确定我错过了什么..非常感谢任何帮助 - 提前感谢!

2 个答案:

答案 0 :(得分:6)

我有类似的问题,解决方法是你必须使用'plink'而不是'ssh'。

所以以下命令(来自bash提示符)应该适合你(假设你已经设置了GitHub SSH key):

$ echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe

$ "$GIT_SSH" -V
plink: Release 0.62

$ "$GIT_SSH" -ssh git@github.com
Using username "git".
Server refused to allocate pty
Hi [your-github-username]! You've successfully authenticated, but GitHub does not provide s
hell access.

如果您只是运行"$GIT_SSH",那么它将打印出您可以使用的参数。 -ssh命令强制PuTTY使用ssh协议。

如果PATH中有C:\Program Files (x86)\PuTTY\,那么您应该能够运行plink -ssh user@host

原因是ssh命令使用OpenSSH而OpenSSH无法识别PuTTY键。

实际上在most up voted answer for Git / PuTTY configuration questions的第一个解决方案中提到了{p> plink.exe,它很难被发现。

答案 1 :(得分:1)

对我来说,解决方案是需要在linux风格中指定路径,如下所示:

set GIT_SSH=/c/PuTTY/plink.exe

由于我在Windows语法中设置环境变量但值是Linux样式路径,因此非常混乱。

关键点是:

echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe   <-- not a valid path in bash shell