【问题标题】:ClientAliveInterval to prevent ssh session freezing / disconnecting?ClientAliveInterval 以防止 ssh 会话冻结/断开连接?
【发布时间】:2011-07-07 19:48:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: ssh sshd


    【解决方案1】:

    ClientAliveInterval的值可以增加sshd的超时时间,你也可以试试下面的命令

    echo "TMOUT=300 >> /etc/bashrc
    
    echo "readonly TMOUT" >> /etc/bashrc
    
    echo "export TMOUT" >> /etc/bashrc 
    

    【讨论】:

      【解决方案2】:

      不保证,但这是我最近开始在服务器上使用的。 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

      【讨论】:

        猜你喜欢
        • 2014-05-15
        • 2022-01-03
        • 2021-09-25
        • 1970-01-01
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 2015-05-02
        • 2014-09-20
        相关资源
        最近更新 更多