在Windows 7上代理后面的git中的SSH

时间:2011-02-24 10:03:30

标签: windows proxy ssh

我正在测试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 个答案:

答案 0 :(得分:44)

设置http.proxy不适用于ssh。您需要代理您的ssh连接。请参阅this说明。总结一下:

开始git-cmd.bat并创建~/.ssh/confignotepad %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

(设置正确的代理主机名:port,以及id_rsa的路径。当你使用git-bash时,在id_rsa的路径中使用斜杠)
(我的msysgit版本包含connect.exe,因此我无需下载和编译connect.c)。预编译的exe也可用here

现在ssh github.com应该有效

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

ProxyCommand connect -S proxy.server.name:1080 %h %p

如果使用Linux文件系统,~/.ssh/config的文件权限必须为600,但在标准NTFS Windows分区上,这些权限不存在。

如果您的代理需要NTLM身份验证,则可以使用cntlm,另请参阅this answer

答案 1 :(得分:-1)

您的代理是否需要密码?那可能是那样。

export http_proxy="http://<domain>\<username>:<password>@<server>:<port>"

请参阅:How do I pull from a Git repository through an HTTP proxy?(重复!)