在Windows 7上代理后的git中使用SSH

34

我正在测试SSH连接,以检查在git中的RSA密钥。 我正在使用代理服务器。 我正在使用Windows 7,并已安装msysGit-fullinstall-1.7.3.1-preview20101002。 现在,在msys.exe窗口中,我通过命令'git config --global http.proxy http://host:port'设置了代理。 之后,我尝试了' ssh git @ github.com'命令。 这给我返回错误,如“ssh:github.com:没有与名称关联的地址”。

我该怎么办?

2个回答

66

设置 http.proxy 对于 ssh 不起作用。你需要代理你的 ssh 连接。请参见这篇文章。简而言之:

启动 git-cmd.bat 并创建 ~/.ssh/config 文件(notepad %home%\.ssh\config.

ProxyCommand /bin/connect.exe -H proxy.server.name:3128 %h %p

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile "C:\users\username\.ssh\id_rsa"
  TCPKeepAlive yes
  IdentitiesOnly yes

Host ssh.github.com
  User git
  Port 443
  Hostname ssh.github.com
  IdentityFile "C:\users\username\.ssh\id_rsa"
  TCPKeepAlive yes
  IdentitiesOnly yes

设置正确的代理主机名:端口和id_rsa文件的路径。当使用git-bash时,请在id_rsa路径中使用斜杠(/)。(我使用的版本msysgit 包含connect.exe,所以我不需要下载并编译connect.c)。也可以在这里获取预编译的exe文件。

现在 ssh github.com 应该能够工作了。

请注意,如果您想通过socks5代理连接,则将-H更改为-S

ProxyCommand connect -S proxy.server.name:1080 %h %p
如果你使用 Linux 文件系统,~/.ssh/config 的文件权限必须为 600,但在标准的 NTFS Windows 分区上,这种权限是不存在的。
如果你的代理需要 NTLM 认证,你可以使用 cntlm,请参考此答案

2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - gnash117
4
谢谢@wimh。我也在我的Windows机器上找到了安装了Git for Windows 64位版本的路径为C:\Program Files\Git\mingw64\bin\connect.exe的文件。 - kujiy
1
我无法在此处发表评论,因此我创建了这个答案,应该是对wimh的评论。对于Windows上的git bash,请将/bin/connect.exe更改为connect.exe。无论如何,感谢您提供的信息。 - Karoshi
1
在 GitBash 中,我使用了链接中的 connect.exe,但是出现了错误 syntax error near unexpected token 'newline' <!DOCTYPE html> Connection closed by remote host。之后我改成了 "/c/Program Files/Git/mingw64/bin/connect.exe",就可以正常工作了。 - Evan Hu
4
使用最新的官方Windows Git版本时,我不得不使用如下命令:ProxyCommand connect.exe -H proxy.server.name:3128 %h %p (其中connect.exe包含在Git的mingw64\bin目录中,在运行git命令时会将其添加到路径中)。 - Anthony O.
显示剩余3条评论

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接