假设我从 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 秒发送一次保持活动消息。这有点频繁,但一旦您确保修复了问题,您就可以根据需要降低频率。