30 秒不活动后,Ubuntu Server 的 ssh 就会挂起

30 秒不活动后,Ubuntu 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

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

答案1

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

服务器存活间隔

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

所以,如果我是对的,只需将这一行添加到您的/etc/ssh/ssh_config文件中在客户端上应该可以修复这个问题:

ServerAliveInterval 30

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

相关内容