0

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

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

有没有更好/不同的方法来防止 shell 会话冻结?

4

2 回答 2

0

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

echo "TMOUT=300 >> /etc/bashrc

echo "readonly TMOUT" >> /etc/bashrc

echo "export TMOUT" >> /etc/bashrc 
于 2011-11-26T14:52:40.740 回答
0

不能保证,但这是我最近开始在服务器上使用的。10 秒似乎很短,但我不相信我的手机可以保持连接。我想您可以增加秒数,直到问题再次出现,然后再拨回。

ClientAliveInterval 10

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

ClientAliveCountMax 200

如果失败,请继续尝试大约 30 分钟。换句话说,每 10 秒继续尝试 200 倍。不过,我的逻辑可能有缺陷,具体取决于 10 秒后发生的情况。假设客户端是安静的(也许我正在阅读)如果成功,“活动”消息是否会重置最大计数?不活动是否被视为失败?还是失败是对活动消息的“不确认”?在我知道答案之前,我认为重复 200 倍是安全的。

这里有类似的问题,还有一些不错的建议......

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

于 2018-06-02T02:42:37.343 回答