无法通过 SSH 隧道克隆 git
Unable to clone git via SSH Tunnel
TLDR
我正在尝试从我的 linux 机器通过 ssh 隧道连接到可以访问我的 VPN 的 OSx 机器。这是我需要访问 github.someprivateurl.net
.
的 URL
实际问题详解
正在设置隧道
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 我可以在这台机器中克隆。
正在访问隧道
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
如何在 ssh 进入 OSx 的同时在我的 linux 机器上克隆存储库?
更新
我认为这只是一个 SSH 错误。我应该提一下,SSh 实际上是通过主机到访客 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.
$ ping -p 3333 github.someprivateurl.net
-p
并不是要ping 的端口。这意味着……别的东西。所以这不是检查端口 3333 是否打开,你只是以一种奇怪的方式 ping 机器。
您的 git ssh URL 不正确。而不是在您要隧道连接的远程主机上使用端口 3333,您必须告诉它使用本地主机的端口 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
来为您保持连接。
TLDR
我正在尝试从我的 linux 机器通过 ssh 隧道连接到可以访问我的 VPN 的 OSx 机器。这是我需要访问 github.someprivateurl.net
.
实际问题详解
正在设置隧道
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 我可以在这台机器中克隆。
正在访问隧道
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
如何在 ssh 进入 OSx 的同时在我的 linux 机器上克隆存储库?
更新
我认为这只是一个 SSH 错误。我应该提一下,SSh 实际上是通过主机到访客 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.
$ ping -p 3333 github.someprivateurl.net
-p
并不是要ping 的端口。这意味着……别的东西。所以这不是检查端口 3333 是否打开,你只是以一种奇怪的方式 ping 机器。
您的 git ssh URL 不正确。而不是在您要隧道连接的远程主机上使用端口 3333,您必须告诉它使用本地主机的端口 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
来为您保持连接。