如何在 Linux 中增加 SSH 连接超时时间


安全外壳 (SSH) 是一种广泛用于安全访问远程系统的协议。它用于在不安全的网络上建立两个计算机之间安全且加密的连接。建立 SSH 连接时,存在一个超时值,该值确定连接在关闭之前可以空闲多长时间。这称为 SSH 连接超时。

SSH 连接超时对于防止未经授权的访问和降低安全漏洞风险至关重要。但是,当您需要在远程系统上工作较长时间时,这可能会很麻烦。在本文中,我们将讨论如何在 Linux 中增加 SSH 连接超时时间。

了解 SSH 连接超时

SSH 连接超时是指 SSH 服务器在终止连接之前的不活动时间段。默认情况下,大多数 SSH 服务器的连接超时时间为 15 分钟。这意味着,如果您在超过 15 分钟的时间内未与远程系统交互,则连接将被终止。

此超时对于防止未经授权的访问和降低安全漏洞风险至关重要。但是,在某些情况下,可能需要增加超时时间段。例如,当处理需要长时间不活动时间的远程系统时,例如下载大型文件或运行长时间进程。

增加 SSH 连接超时时间

要增加 Linux 中的 SSH 连接超时时间,您需要修改远程系统上的 sshd_config 文件。此文件包含 SSH 服务器的配置设置。以下是增加 SSH 连接超时的步骤:

步骤 1:连接到远程系统

要修改 sshd_config 文件,您需要登录到远程系统。您可以使用本地系统上的 SSH 客户端执行此操作。打开终端并输入以下命令:

ssh username@remote-system-ip

将“username”替换为您用于登录远程系统的用户名,并将“remote-system-ip”替换为远程系统的 IP 地址。

步骤 2:修改 sshd_config 文件

登录到远程系统后,您需要修改 sshd_config 文件。使用文本编辑器(如 nano 或 vi)打开该文件。例如:

sudo nano /etc/ssh/sshd_config

步骤 3:查找 ClientAliveInterval 和 ClientAliveCountMax 参数

在 sshd_config 文件中,找到以下参数:

ClientAliveInterval
ClientAliveCountMax

ClientAliveInterval 参数指定服务器在向客户端发送保持活动消息之前的时间间隔(以秒为单位)。ClientAliveCountMax 参数指定在服务器终止连接之前,可以在没有客户端响应的情况下发送的保持活动消息的数量。

步骤 4:增加 ClientAliveInterval 和 ClientAliveCountMax 值

要增加 SSH 连接超时时间,您需要增加 ClientAliveInterval 和 ClientAliveCountMax 参数的值。例如,要将超时时间增加到 60 分钟,请将值设置为如下所示:

ClientAliveInterval 600
ClientAliveCountMax 6

ClientAliveInterval 设置为 600 秒(60 分钟),ClientAliveCountMax 设置为 6。这意味着服务器将每 10 分钟发送一次保持活动消息,并且连接将在 1 小时不活动后终止。

步骤 5:保存并关闭 sshd_config 文件

修改 sshd_config 文件后,保存更改并关闭文件。

步骤 6:重新启动 SSH 服务器

要应用更改,您需要在远程系统上重新启动 SSH 服务器。您可以通过输入以下命令来执行此操作:

sudo service ssh restart

测试 SSH 连接超时

要确保对 SSH 连接超时所做的更改有效,您需要测试 SSH 连接。您可以通过建立到远程系统的 SSH 连接并将其保持空闲指定超时时间段来执行此操作。

例如,如果您已将 SSH 连接超时时间设置为 60 分钟,请建立到远程系统的 SSH 连接并将其保持空闲 1 小时。如果连接在 1 小时后仍然处于活动状态,则对 SSH 连接超时所做的更改已正确生效。

其他提示和注意事项

在 Linux 中增加 SSH 连接超时时间时,请记住以下其他提示和注意事项:

在增加超时值时要谨慎。增加 SSH 连接超时时间可能会增加安全漏洞风险,尤其是在远程系统可从互联网访问的情况下。建议仅在必要时增加超时值,并将增加幅度限制在合理范围内。

测试连接超时值。对 SSH 连接超时进行更改后,务必测试新值是否按预期工作。建立到远程系统的 SSH 连接并将其保持空闲指定超时时间段,以确认连接是否已正确终止。

考虑使用其他方法保持 SSH 连接处于活动状态。如果您不想增加 SSH 连接超时值,则可以使用其他方法保持 SSH 连接处于活动状态。例如,您可以在后台运行一个每隔几分钟生成输出的命令,或使用 SSH 隧道。

确保遵循 SSH 安全的最佳实践。SSH 是一个强大的远程访问工具,但如果配置不当,也可能成为潜在的安全风险。为了确保 SSH 连接的安全,请确保遵循最佳实践,例如禁用 root 登录、使用强密码和限制对受信任用户的访问。

增加 SSH 连接超时的替代方法

除了修改 sshd_config 文件外,还有其他方法可以增加 SSH 连接超时时间。以下是一些替代方法:

使用 ServerAliveInterval 和 ServerAliveCountMax 选项

您可以在 SSH 客户端配置文件中使用 ServerAliveInterval 和 ServerAliveCountMax 选项来保持 SSH 连接处于活动状态。这些选项的工作方式类似于 sshd_config 文件中的 ClientAliveInterval 和 ClientAliveCountMax 参数。要使用这些选项,请将以下行添加到您的 SSH 客户端配置文件(通常位于 ~/.ssh/config 中):

Host *
   ServerAliveInterval 600
   ServerAliveCountMax 6

在此示例中,ServerAliveInterval 设置为 600 秒(10 分钟),ServerAliveCountMax 设置为 6。这意味着客户端将每 10 分钟向服务器发送一次保持活动消息,并且连接将在 1 小时不活动后终止。

使用 TCPKeepAlive 选项

TCPKeepAlive 选项也可用于保持 SSH 连接处于活动状态。此选项定期向服务器发送 TCP 保持活动数据包,以检查连接是否仍然有效。要使用此选项,请将以下行添加到远程系统上的 sshd_config 文件中:

TCPKeepAlive yes

此选项在大多数 SSH 服务器上默认启用,并且可以与 ClientAliveInterval 和 ClientAliveCountMax 参数结合使用以增加 SSH 连接超时时间。

使用 SSH ControlMaster 选项

SSH ControlMaster 选项允许您为后续连接到同一服务器的连接重用现有的 SSH 连接。这有助于减少建立新 SSH 连接所需的时间,并保持连接处于活动状态。要使用此选项,请将以下行添加到您的 SSH 客户端配置文件中:

Host *
   ControlMaster auto
   ControlPath ~/.ssh/%r@%h:%p
   ControlPersist 600

在此示例中,ControlMaster 选项设置为 auto,这意味着 SSH 在建立新 SSH 连接时将自动设置主连接。ControlPath 选项指定用于主连接和从连接之间通信的控制套接字的路径,ControlPersist 选项设置在最后一个从连接关闭后保持主连接活动的时间(以秒为单位)。

结论

在 Linux 中增加 SSH 连接超时时间是一个简单的过程,可以通过修改远程系统上的 sshd_config 文件来完成。通过增加超时时间,您可以在远程系统上工作较长时间,而无需担心连接因不活动而终止。但是,请务必记住,增加 SSH 连接超时时间可能会增加安全漏洞风险,因此应仅在必要时进行。

更新于: 2023 年 4 月 28 日

43K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始
广告