我相信这是一个相当简单的问题,但从表面上看,我确信它不是“错误的”。
我正在尝试从我的 Linux 机器通过 ssh 隧道接入可以访问我的 VPN 的 OSx 机器。
建立隧道
hutber@hutber ~ $ ssh -L 3333:github.someprivateurl.net:22 [email protected]
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://[email protected]/POC05Mortgages/mortgages-ui.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 时我能够在这台机器内进行克隆。
进入隧道
hutber@hutber /var/www $ git clone ssh://[email protected]:3333/POC05Mortgages/mortgages-ui.git
Cloning into 'mortgages-ui'...
我的 Linux 机器上的上述克隆将挂起,直到连接意识到它无权访问并将我赶出去。
我怎样才能在通过 ssh 进入 OSx 的同时克隆我的 Linux 机器上的 repo?
编辑
我不确定这有多大帮助...但我无法访问我尝试克隆的站点,所以这显然与 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
答案1
当你设置 SSH 隧道时,你指定连接到当地的host 将通过您要连接的 SSH 服务器转发到指定的远程主机和端口。因此,要使用隧道,您必须将流量发送到localhost:port
。对于您的情况,如果我正确读取了您的命令的输出,它应该很简单:
git clone ssh://git@localhost:3333/POC05Mortgages/mortgages-ui.git
当然,假设隧道已经建立起来。
我不会太担心 ping 失败。许多机器或网络配置为拒绝 ICMP 流量,即使它们接受其他流量。在不确定的情况下,使用或之类的工具通常很有用,tcptraceroute
它们hping
可以使用 TCP 而不是 ICMP 运行网络诊断。
顺便说一句,您的 Linux 机器的 ping 输出中列出了一个公共 IP。您可能想删除它。