解锁 SSH 长久连接的神秘诀窍 - 无需担心断开连接!

2025-09-30 13:26:10      世界杯排名球队

tcp_keepalive_time:确定在空闲的TCP连接上发送TCP保活探测的时间间隔。保活探测检查远程对等端是否仍然活动和响应,即使没有数据传输。

tcp_keepalive_probes:由TCP端点发送的小型数据包,用于检查空闲连接中远程端点的健康和响应能力。它检测远程端点是否已变得不可访问或由于网络问题导致连接丢失。

tcp_keepalive_intvl:控制在空闲的TCP连接上发送保活探测的时间间隔。

每个值均以秒为单位,并可使用以下命令轻松检查。

这意味着什么呢?保活时间为7200秒,即120分钟(2小时)。但是,这并不意味着您的SSH会话将保持活跃2小时,因为以下两个参数至关重要。

系统的默认设置在75秒间隔内发送9个探测包,总计675秒,之后会认为会话失败并关闭。

换句话说,在大约11分钟后,如果您没有在终端中输入任何内容,您的SSH会话将因不活动而被终止。

当然,您可以调整这些设置,但这并不是正确的方法。SSH提供了保持会话活动的机制,我们将在下面向您展示。

如何保持SSH会话活动

保持SSH会话活动是一个涉及客户端和服务器双方配置的过程。

Linux客户端配置

在客户端,即您的Linux桌面系统中,在您的主目录中创建一个文件(如果不存在)“~/.ssh/config”。

以下是每个选项的含义:

Host:指定的配置仅适用于跟在“Host”关键字后面列出的主机。因为我们使用了通配符(*),它们适用于所有主机。

ServerAliveInterval:设置一个超时间隔(以秒为单位),如果在该间隔内未从服务器收到任何数据,SSH将通过加密通道发送一条消息以请求服务器响应。默认值为0,表示不会向服务器发送这些消息。

ServerAliveCountMax:设置可发送的服务器活动消息数,而SSH未从服务器收到任何消息。如果在发送服务器活动消息时达到此阈值,SSH将与服务器断开连接,终止会话。默认值为3。

Host:指定的配置仅适用于跟在“Host”关键字后面列出的主机。因为我们使用了通配符(*),它们适用于所有主机。

ServerAliveInterval:设置一个超时间隔(以秒为单位),如果在该间隔内未从服务器收到任何数据,SSH将通过加密通道发送一条消息以请求服务器响应。默认值为0,表示不会向服务器发送这些消息。

ServerAliveCountMax:设置可发送的服务器活动消息数,而SSH未从服务器收到任何消息。如果在发送服务器活动消息时达到此阈值,SSH将与服务器断开连接,终止会话。默认值为3。

换句话说,客户端将每120秒(2分钟)向服务器发送一条保活消息,共30次。120 * 30 = 3600秒,即1小时。即使没有活动,这是我们的SSH会话保持活跃的总时间。

Windows 客户端配置

为保持他们的 SSH 会话活跃,使用 PuTTY 进行远程 SSH 访问的 Windows 用户必须将“保持活动间隔秒数”选项在“连接”选项卡中设定为大于零的数值。

在下面展示的示例中,我们将该数值设定为 60,这意味着每分钟 PuTTY 客户端将向服务器发送一个保持活动消息以保持 SSH 连接处于活动状态。

在 PuTTY 上更改保持活动设置

当然,不要忘记保存您对 PuTTY 会话所做的更改(“类别” > “保存的会话” > “保存“ “Category” > “Saved Sessions” > “Save“)。

服务器端配置

更改服务器的超时选项会影响所有连接到服务器的客户端。您需要编辑“/etc/ssh/sshd_config”文件来执行此操作。

然后设置以下三个选项:

在 SSH 服务器上更改保持活动设置

这三个选项的含义如下:

TCPKeepAlive:指定系统是否应向客户端发送 TCP 保持活动消息。

ClientAliveInterval:设置超时间隔(以秒为单位)。如果从客户端未收到数据,则 SSH 服务器会通过加密通道发送消息,请求客户端的响应。默认值为 0,表示不会向客户端发送这些消息。

ClientAliveCountMax:设置可以在没有从客户端收到任何消息的情况下发送的客户端活动消息的数量。如果在发送客户端活动消息时达到了此阈值,则 SSH 服务器将断开客户端连接,终止会话。默认值为 3。

TCPKeepAlive:指定系统是否应向客户端发送 TCP 保持活动消息。

ClientAliveInterval:设置超时间隔(以秒为单位)。如果从客户端未收到数据,则 SSH 服务器会通过加密通道发送消息,请求客户端的响应。默认值为 0,表示不会向客户端发送这些消息。

ClientAliveCountMax:设置可以在没有从客户端收到任何消息的情况下发送的客户端活动消息的数量。如果在发送客户端活动消息时达到了此阈值,则 SSH 服务器将断开客户端连接,终止会话。默认值为 3。

就像上面客户端配置的情况一样,SSH 服务器会保持连接活跃一个小时(120 * 30 = 3600 秒)。

最后,重新启动 SSH 服务器:

总结

实施 SSH 超时和保持活动呈现了增强安全性和确保可靠连接之间微妙的平衡。

SSH 超时和保持活动的好处在于它们自动终止空闲会话,从而减轻未经授权访问和潜在攻击的风险,有助于网络安全。

另一方面,过于激进的超时和保持活动设置会导致意外断开连接,影响生产力并引起用户的沮丧。

因此,为了找到合适的平衡,管理员必须仔细考虑他们的网络基础设施和用户行为。这样做可以为远程通信创造一个安全有效的环境,促进用户满意度和数据保护。

有关其他配置文件选项的更多信息,请参阅客户端 client-side或服务器端 server-side的手册文件。

LINUX迷公众号

感谢 Linux迷 www.linuxmi.com 的精彩分享。

更多关于Debian 12的消息请点击关注以下视频号。

需要Linux 精美艺术壁纸和免费编程及Linux 教程(PDF版)的朋友请加小编微信linuxgs(口令linuxmi)。

需要邀请码的也请加小编微信linuxgs(口令:邀请码)。

来自:Linux迷

链接:https://www.linuxmi.com/ssh-session-alive.html

关注我们

Linux公社

关注 Linux公社,添加“ 星标 ”

每天 获取 技术干货,让我们一起成长

合作联系:root@linuxidc.net

关注我们

Linux公社

关注 Linux公社,添加“ 星标 ”

每天 获取 技术干货,让我们一起成长

合作联系:root@linuxidc.net返回搜狐,查看更多

如何保护你的Excel表格不被随意修改:实用锁定方法全揭秘!
oppo手机照相怎么显示日期和时间