首页 文章

无法通过SSH隧道克隆git

提问于
浏览
1

TLDR

我正在尝试从我的linux机器ssh隧道进入可以访问我的VPN的OSx机器 . 这是我需要访问的URL github.someprivateurl.net .

详细的实际问题 .

Setting up tunnel

hutber@hutber ~ $ ssh -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18
Password:
Last login: Thu Jun  7 01:00:34 2018 from 192.168.1.3
hutber@Jamies-Mac ~ $ 
hutber@Jamies-Mac ~/www/jamie $ git clone ssh://git@github.someprivateurl.net/Mortgages/mortgages.git
Cloning into 'mortgages-ui'...
remote: Counting objects: 63823, done.
remote: Compressing objects: 100% (52/52), done.
^Cfatal: The remote end hung up unexpectedlyMiB | 8.44 MiB/s

^只是为了表明当ssh进入OSx我能够在这台机器中克隆 .

Accessing the tunnel

hutber@hutber /var/www $ git clone ssh://git@github.someprivateurl.net:3333/Mortgages/mortgages-ui.git


Cloning into 'mortgages-ui'...

我的linux机器上面的克隆将挂起,直到连接意识到它没有访问权限并将我抛出 .

我不确定这有多大帮助......但是我无法访问我想要克隆的网站,所以它显然与git无关:

OSX

hutber@Jamies-Mac ~/www/jamie $ ping github.someprivateurl.net
PING github.someprivateurl.net (10.113.188.195): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^Z
[1]+  Stopped                 ping github.someprivateurl.net

Linux的

hutber@hutber /var/www $ ping -p 3333 github.someprivateurl.net
PATTERN: 0x3333
PING github.someprivateurl.net (159.34.88.181) 56(84) bytes of data.
From 172.16.24.82 icmp_seq=1 Time to live exceeded
From 172.16.24.82 icmp_seq=2 Time to live exceeded
From 172.16.24.82 icmp_seq=3 Time to live exceeded
From 172.16.24.82 icmp_seq=4 Time to live exceeded
^C
--- github.someprivateurl.net ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3004ms

如何在进入OSx的同时克隆我的linux机器上的repo?

Update

因为这是我认为只是一个SSH错误 . 我应该提一下,SSh实际上是通过Host到guest SSH . 我的客人只有一个主机连接,并通过自己的物理wifi加密狗连接到互联网 . 它是VPN设置的wifi连接 .


hutber@hutber ~ $ ssh -fNT -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18
Password:
hutber@hutber /var/www $ ssh -p 3333 github.someprivateurl.net
^C //Hangs
hutber@hutber /var/www $ telnet localhost 3333
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-libssh_0.7.0
^^
Connection closed by foreign host.

2 回答

  • 2

    $ ping -p 3333 github.someprivateurl.net

    -p 并不意味着要ping的端口 . 这意味着......别的东西 . 所以's not checking if port 3333 is open, you'只是以一种奇怪的方式对机器进行ping操作 .

    您的git ssh网址不正确 . 您不必在远程主机上使用端口3333进行隧道连接,而是必须告诉它使用localhost的端口3333 .

    git clone ssh://git@localhost:3333/Mortgages/mortgages-ui.git
    

    与大多数git ssh问题一样,将它们作为ssh问题进行调试是最容易的 . 首先是实际尝试sshing到3333端口 .

    ssh -p 3333 localhost
    

    我怀疑这不起作用 . 从那里,正常调试ssh问题 .

    我怀疑你的隧道实际上并没有运行,因为一旦你退出它打开的ssh会话你的隧道就会关闭 . 您需要一些额外的标志才能使其作为隧道持久存在 . 特别...

    • -f 告诉 ssh 立即转到后台

    • -N 阻止它尝试执行远程命令

    • -T 不分配伪终端做句柄打字

    所以那是...

    ssh -fNT -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18
    

    您还需要考虑使用autossh为您保持连接 .

  • -1
    • 尝试用https替换git协议 .

    • 在本地计算机上下载zip并将其scp到服务器 .

    • 搬走隧道 . 也没有意义 . 你可以直接进入它 . 或者从当前计算机设置vpn . 这就是vpn的用途 .

相关问题