ServerAliveInterval 和 ServerAliveCountMax

ServerAliveInterval 和 ServerAliveCountMax

我了解每个活着的最大计数的作用,但我似乎无法找到以下问题的答案:

ServerAliveCountMax 设置服务器活动消息的数量(见下文),可以在 ssh(1) 未从服务器接收任何消息的情况下发送该消息。如果在发送服务器活动消息时达到此阈值,ssh 将与服务器断开连接,从而终止会话

假设 ServerAliveInterval 为 15 且 ServerAliveCountMax 为 10 。如果服务器在 3 serverAliveInterval(45 秒)内没有响应,则它会变为响应。之后它再次变得无响应,serverAliveCountMax 是否会继续进行剩余的 7 次尝试(15 * 7)?或者从 0 开始数到 10 ( 15 * 10 )?换句话说,如果该计数器变得有响应,它会重置吗?

答案1

这里的关键是“没有ssh(1)收到服务器返回的任何消息”。这两个参数的手册页ServerAliveIntervalServerAliveCountMax写道ssh_config

ServerAliveCountMax 设置可发送的服务器活动消息数(见下文),而无需ssh(1) 从服务器接收任何消息。如果在发送服务器活动消息时达到此阈值,ssh将断开与服务器的连接,终止会话。[...]

ServerAliveInterval 设置超时间隔(以秒为单位),在此之后如果没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器响应。 [...]

您可以看到计数器一旦重置收到任何消息从服务器返回。该消息可能是对“保持活动”请求的响应,也可能是带内数据;这对计时器来说并不重要。

相关内容