如何在 Linux 中增加 SSH 连接超时
Secure Shell (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 分钟发送一条保持活动消息,并且连接将在不活动一小时后终止。
步骤 5:保存并关闭 sshd_config 文件
修改 sshd_config 文件后,保存更改并关闭该文件。
第6步:重新启动SSH服务器
要应用更改,您需要重新启动远程系统上的 SSH 服务器。您可以通过输入以下命令来完成此操作 -
sudo service ssh restart
测试 SSH 连接超时
为了确保对 SSH 连接超时所做的更改起作用,您需要测试 SSH 连接。您可以通过建立与远程系统的 SSH 连接并使其在指定的超时时间内保持空闲来完成此操作。
例如,如果您将 SSH 连接超时设置为 60 分钟,则与远程系统建立 SSH 连接并使其空闲一小时。如果一小时后连接仍然处于活动状态,则您对 SSH 连接超时所做的更改正常工作。
其他提示和注意事项
以下是在 Linux 中增加 SSH 连接超时时需要记住的一些额外提示和注意事项 -
增加超时值时要小心。增加 SSH 连接超时可能会增加安全漏洞的风险,尤其是在可通过 Internet 访问远程系统的情况下。建议仅在必要时增加超时值,并将增加限制在合理的值。
测试连接超时值。更改 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 分钟就会向服务器发送一次 keep-alive 消息,之后连接就会终止。一小时不活动。
使用 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 连接超时可能会增加安全漏洞的风险,并且仅应在必要时才这样做。