ssh 到 Ubuntu 服务器在 30 秒不活动后挂起

Ele*_*rks 6 server ssh

假设我从我的 Linux 机器 ssh 到我的 13.04 服务器,然后vim file进行一些文本编辑。如果我暂停 30-60 秒,考虑输入什么,那么终端将挂起。光标框继续闪烁,但终端中没有任何变化。它不需要键盘输入。它永远不会断开连接,永远不会给我另一条消息,显示任何错误。我必须关闭控制台窗口才能摆脱它。

这是什么,当它发生时我如何摆脱它,以及我如何防止它在未来发生?

grep -Hi Alive /etc/ssh/ssh*_config在服务器上的结果:

/etc/ssh/ssh_config:ServerAliveInterval 30 
/etc/ssh/sshd_config:TCPKeepAlive yes
Run Code Online (Sandbox Code Playgroud)

没有结果 grep -i alive /etc/ssh/ssh_config

ter*_*don 14

我认为问题是你没有ServerAliveInterval在客户端上设置。如中所述man ssh_config

服务器活动间隔

以秒为单位设置超时间隔,如果没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器的响应。默认值为 0,表示这些消息不会发送到服务器,如果设置了 BatchMode 选项,则为 300。此选项仅适用于协议版本 2。ProtocolKeepAlives 和 SetupTimeOut 是此选项的 Debian 特定兼容性别名。

因此,如果我是对的,只需将此行添加到客户端上的/etc/ssh/ssh_config文件中即可解决问题:

ServerAliveInterval 30
Run Code Online (Sandbox Code Playgroud)

这将每 30 秒发送一次保持活动消息。这有点频繁,但是一旦您确定修复了它,您就可以根据需要降低频率。