配置msysgit以使用putty/plink

raw*_*awb 5 git putty plink msysgit

为基本问题提前道歉 - 我是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存储库而没有任何问题)确认了这一点,但我真的很想得到这个设置所以我可以管理我的如果可能,通过腻子私钥.

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

icc*_*c97 6

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

因此,以下命令(来自bash提示符)应该适合您(假设您已经设置了GitHub SSH密钥):

$ 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.
Run Code Online (Sandbox Code Playgroud)

如果你刚运行"$GIT_SSH"它会打印出你可以使用的参数.该-ssh命令强制PuTTY使用ssh协议.

如果你已经进入C:\Program Files (x86)\PuTTY\了PATH,那么你应该能够运行plink -ssh user@host

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

plink.exe实际上在Git/PuTTY配置问题的最高投票答案的第一个解决方案中提到,它很难发现.