SSH隧道上的git协议失败

时间:2015-03-15 05:28:54

标签: git ssh proxy

出于某种原因,我无法从我的本地主机A访问以下远程git存储库(git://git.linphone.org/linphone-android.git)。我有另一个远程主机B,可以访问上面的库。主机B上的SSH服务器已启动。

以下步骤基于how-to-use-ssh-tunnel-to-forward-git-protocol

  1. 配置git proxy:

    git config --glocal core.gitproxy ck-gitproxy
    
  2. ck-gitproxy脚本是:

    PROXY=127.0.0.1 
    DEBUG="-d -d -d -d" 
    exec socat $DEBUG STDIO SOCKS4:${PROXY}:$1:$2
    
  3. 在本地主机A上,我打开一个SSH隧道:

    ssh -L 9418:git.linphone.org:9418 <host-B-IP>
    
  4. 然后我尝试从主机A克隆存储库。但是以下命令都失败了:

  5. git clone git://git.linphone.org/linphone-android.git
    git clone git://localhost/linphone-android.git
    

    错误消息:

    2015/03/15 13:17:41 socat[3496] N opening connection to AF=2 127.0.0.1:1080
    2015/03/15 13:17:41 socat[3496] N opening connection to git.linphone.org:9418 via socks4 server 127.0.0.1:1080 as user "mancook"
    2015/03/15 13:17:41 socat[3496] D getaddrinfo("git.linphone.org", NULL, {1,2,1,6,0,(nil),(nil),(nil)}, 0xbffb3708)
    2015/03/15 13:17:41 socat[3496] D getaddrinfo(,,,{{AF=2 94.23.19.176:0, }) -> 0
    2015/03/15 13:17:41 socat[3496] D socket(2, 1, 6)
    2015/03/15 13:17:41 socat[3496] I socket(2, 1, 6) -> 3
    2015/03/15 13:17:41 socat[3496] D fcntl(3, 2, 1)
    2015/03/15 13:17:41 socat[3496] D fcntl() -> 0
    2015/03/15 13:17:41 socat[3496] D connect(3, {2,AF=2 127.0.0.1:1080}, 16)
    2015/03/15 13:17:41 socat[3496] D connect() -> -1
    2015/03/15 13:17:41 socat[3496] D getsockname(3, 0xbffb36ec, 0xbffb35e8{112})
    2015/03/15 13:17:41 socat[3496] D getsockname(, {AF=2 0.0.0.0:41759}, {16}) -> 0
    2015/03/15 13:17:41 socat[3496] E connect(3, AF=2 127.0.0.1:1080, 16): Connection refused
    2015/03/15 13:17:41 socat[3496] N exit(1)
    2015/03/15 13:17:41 socat[3496] I shutdown(3, 2)
    2015/03/15 13:17:41 socat[3496] D shutdown()  -> -1
    2015/03/15 13:17:41 socat[3496] I shutdown(3, 2): Transport endpoint is not connected
    

    我搜索了这个问题一整天,但未能找到解决方案!希望可以有人帮帮我。在此先感谢:)

2 个答案:

答案 0 :(得分:0)

我试过

git clone git://git.linphone.org/linphone-android.git

只是现在它自己工作,没有任何额外的设置。也许你过度复杂了?

答案 1 :(得分:0)

谢谢大家。 我用VPN客户端解决了这个问题。