如何防止 Linux 中的 SSH 连接超时

如果您在命令行上花费大量时间,您可能会遇到一个恼人的问题,即您的会话在相对短暂的不活动后超时。 虽然从安全角度来看这是可取的,但当您尝试执行长时间运行的操作时,它可能会导致问题。
通常发生的情况是,当您闲置一段时间后,您与服务器的连接会被重置,通常会产生错误:对等连接重置。 为了避免这种情况,您需要在服务器上设置一个 Keep Alive 选项。

另请参阅:在 Linux 上安装和配置 OpenSSH-server 在本指南中,您将学习如何防止 SSH 连接超时并保持 SSH 会话处于活动状态,即使在 Linux 中处于不活动状态。

增加 SSH 连接超时

在服务器上,前往 /etc/ssh/sshd_config 配置文件。

$ sudo vi /etc/ssh/sshd_config

滚动并找到以下参数:

#ClientAliveInterval  #ClientAliveCountMax

在哪里, ClientAliveInterval: 以秒为单位设置超时间隔,如果没有收到来自客户端的数据,sshd 将通过加密通道发送消息以请求客户端的响应。 默认为 0,表示这些消息不会发送到客户端。 此选项仅适用于协议版本 2。 ClientAliveCountMax: 设置客户端活动消息的数量,这些消息可以在 sshd 没有从客户端接收任何消息的情况下发送。 如果在发送客户端活动消息时达到此阈值,sshd 将断开客户端连接,终止会话。

超时值由上述参数的乘积给出,即

Timeout value = ClientAliveInterval * ClientAliveCountMax

例如,假设您已经定义了如下所示的参数:

ClientAliveInterval  1200 ClientAliveCountMax 3

超时值将是 1200 秒 * 3 = 3600 秒. 这相当于 1 小时,这意味着您的 ssh 会话将在 1 小时的空闲时间内保持活动状态而不会中断。
或者,您可以通过单独指定 ClientAliveInterval 参数来获得相同的结果。

ClientAliveInterval  3600

完成后,重新加载 OpenSSH 守护程序以使更改生效。

$ sudo systemctl reload sshd