如何调试工作的ssh隧道,然后在不确定的时间后挂起

时间:2017-02-26 09:49:00

标签: ssh ssh-tunnel

我有两台机器m_remotem_server。我可以使用:

成功设置从m_remotem_server的ssh隧道
ssh -f -N -T -R22222:localhost:22 m_remote_user_on_server@123.123.123.123 -i /path/to/.ssh/m_remote_key

其中123.123.123.123m_server IP地址。我可以使用:{/ p>成功地使用m_serverm_remote的隧道

ssh m_server_user_on_remote@localhost -p 22222 -i /path/to/.ssh/m_server_key

然而,经过一段时间后,隧道变得反应迟钝,再也无法使用它。我必须直接访问远程计算机并重新启动隧道。有没有办法调试这个?从遥控器我得到的是:

$ ssh -vvvv m_server_user_on_remote@localhost -p 22222 -i /home/server_user/.ssh/m_server_key
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/server_user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "localhost" port 22222
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22222.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /home/server_user/.ssh/m_server_key type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/server_user/.ssh/m_server_key-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1

然后经过长时间的停顿至少2分钟后,它会退出:

ssh_exchange_identification: Connection closed by remote host

虽然这是由于cron的工作,我已经设置了定期杀死并重新启动隧道。

** 修改 **

在OSX 10.11上,它有相同的调试日志,并附加一行:

...
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: permanently_drop_suid: 501   # <-- additional line before hanging

1 个答案:

答案 0 :(得分:0)

我不确定,因为我需要对此进行诊断和关联,但由于m_remote机器处于片状家庭wifi连接,这可能会导致隧道挂起。

或者可能有一些配置选项,例如ControlPersist(可能只与主连接相关),其默认值可能低于10分钟,可能会增加。