ClientAliveInterval阻止ssh会话冻结/断开连接?

时间:2011-03-03 05:56:41

标签: ssh sshd

将我的VPS升级到CentOs 5.5后,如果我在一段时间内忽略它们,我就开始体验冻结/断开连接的shell会话。很烦人。我找到的解决方案是编辑/etc/ssh/sshd_config并将ClientAliveInterval设置为所需的秒数。我的理解是,这基本上取代了客户端用户(我)的活动,因此会阻止会话断开连接。

在做了这个小改动后启动了一个shell会话,我似乎能够维持一个被忽视的会话。然而,仅仅因为一件事似乎工作并不意味着必须采取最好的,甚至是正确的方法。

是否有更好/不同的方法来阻止shell会话冻结?

2 个答案:

答案 0 :(得分:0)

ClientAliveInterval值可以增加sshd超时,您也可以尝试以下命令

echo "TMOUT=300 >> /etc/bashrc

echo "readonly TMOUT" >> /etc/bashrc

echo "export TMOUT" >> /etc/bashrc 

答案 1 :(得分:0)

无保证,但这是我最近开始在服务器上使用的内容。 10秒似乎很短的时间,但我不相信我的手机保持连接活着。我想你可以增加问题再次开始的秒数,然后再拨回来。

ClientAliveInterval 10

设置超时间隔(以秒为单位),之后如果没有从客户端收到数据,sshd(8)将通过加密通道发送消息以请求客户端的响应。默认值为0,表示不会将这些消息发送到客户端。

ClientAliveCountMax 200

如果失败,请继续尝试约30分钟。换句话说,每10秒钟继续尝试200次。我的逻辑可能有缺陷,取决于10秒后会发生什么。假设客户很安静(比如我可能正在阅读),那么" alive"如果成功,消息重置最大计数?不活动被视为失败吗?或者是失败"没有确认"活着的消息?在我知道答案之前,我认为重复200倍是安全的。

这里有类似的问题,还有一些体面的建议......

https://unix.stackexchange.com/questions/400427/when-to-use-clientaliveinterval-versus-serveraliveinterval