我正在尝试使用从我的办公室机器到我的家用机器的 ssh 隧道,并且在我尝试使用它时出现错误。
我正在做的是像这样启动一个 shell:
ssh -gL 12345:my.home.domain:22 my.home.domain
Run Code Online (Sandbox Code Playgroud)
这给了我一个合适的外壳,没问题。我通常做的是通过这台办公机器ssh到我的家用机器,如下所示:
ssh -p 12345 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
这一直对我有用,直到上周我在我的家用机器上设置了一个新系统(从 Ubuntu 切换到 Debian)。现在我收到一个错误。我仍然可以打开我的初始 ssh 连接,但是当我尝试使用该隧道时,我(在办公室机器上)收到此错误:
ssh_exchange_identification: Connection closed by remote host
Run Code Online (Sandbox Code Playgroud)
此外,当这种情况发生时,我设置了隧道的开放外壳会向它吐出这条线:
channel 3: open failed: connect failed: Connection timed out
Run Code Online (Sandbox Code Playgroud)
在这一点上,我不知所措。如果需要更多信息,我很乐意发布。
============== 进一步=============
在进一步摆弄之后,我发现当我尝试在各个端口上 telnet 时,我从服务器(我的家用机器)得到了不同的响应。如果我尝试:
telnet my.home.domain 22
Run Code Online (Sandbox Code Playgroud)
我得到这个:
Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2
Run Code Online (Sandbox Code Playgroud)
这是我所期望的。在设置隧道之后,然后 telnet 到那个,我看到了这个响应:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)
============== 还有更进一步的 ==================
根据kbulgrien的建议,以下是带有 -v 选项的客户端机器的输出: …
ssh-tunnel ×1