我了解每个活动计数最大值的作用,但我似乎无法找到以下问题的答案:
ServerAliveCountMax 设置可以在没有 ssh(1) 从服务器接收任何消息的情况下发送的服务器活动消息的数量(见下文)。如果在发送服务器活动消息时达到此阈值,ssh 将与服务器断开连接,终止会话
假设 ServerAliveInterval 是 15 , ServerAliveCountMax 10 。如果服务器在 3 serverAliveInterval(45 秒)内没有响应,那么它会变得有响应。之后它再次变得无响应,serverAliveCountMax 是否会继续进行剩余的 7 次试验(15 * 7)?还是从 0 开始计数到 10 ( 15 * 10 )?换句话说,如果这个计数器有响应,它会重置吗?
这里的关键是“没有ssh
(1)从服务器接收任何消息”。两个参数的手册页ServerAliveInterval
和ServerAliveCountMax
inssh_config
写道
ServerAliveCountMax
设置可以在不ssh
(1) 从服务器接收任何消息的情况下发送的服务器活动消息的数量(见下文)。如果在发送服务器活动消息时达到此阈值,ssh
将与服务器断开连接,终止会话。[...]
ServerAliveInterval
以秒为单位设置超时间隔,如果没有从服务器接收到数据,ssh
(1) 将通过加密通道发送消息以请求服务器的响应。[...]
您可以看到,一旦从服务器收到任何消息,计数器就会重置。该消息可能是对 Keep Alive 请求的响应,也可能是带内数据;这对计时器来说并不重要。