网站搜索

如何在 Linux 中断开不活动或空闲的 SSH 连接


在我们之前的文章中,我们解释了如何使用 TMOUT shell 变量在没有任何活动时自动注销 Linux shell。在本文中,我们将解释如何在 Linux 中自动断开不活动或空闲的 SSH 会话或连接。

另请阅读:断开连接后保持远程 SSH 会话和进程运行的 5 种方法

这只是保护 SSH 服务免受可能攻击的多种做法之一;您还可以阻止 SSH 和 FTP 访问 Linux 中的特定 IP 和网络范围,以增加更多安全性。

在 Linux 中自动断开不活动的 SSH 会话

要自动断开空闲 SSH 会话,您可以使用这些 sshd 配置选项。

  • ClientAliveCountMax – 定义发送到 ssh 客户端的消息(客户端活动消息)数量,而 sshd 不会从客户端接收回消息。一旦达到此限制,在客户端没有响应的情况下,sshd 将终止连接。默认值为3
  • ClientAliveInterval – 定义一个超时间隔(以秒为单位),在此之后如果没有从客户端收到消息,sshd 将向客户端发送一条消息,请求其响应。默认值为0,表示这些消息不会发送到客户端。

要配置它,请使用您选择的编辑器打开主 SSH 配置文件 /etc/ssh/sshd_config

vi /etc/ssh/sshd_config

添加以下两行,这意味着它将在大约 3 分钟后断开客户端连接。这意味着每60秒后,发送一条客户端活动消息(总共将发送3条客户端活动消息),结果为3*60=180秒(3 分钟)。


ClientAliveInterval 60
ClientAliveCountMax 3

进行更改后,请确保重新启动 SSH 服务以使新更改生效。

systemctl restart sshd   [On Systemd]
service sshd restart     [On SysVinit]

就这样!以下是有用的 SSH 指南列表,您可以阅读:

  1. 如何配置自定义 SSH 连接以简化远程访问
  2. ssh_scan – 验证 Linux 中的 SSH 服务器配置和策略
  3. 使用 Chrooted Jail 限制 SSH 用户访问某些目录

由于严重的安全原因,绝对有必要自动断开不活动的 SSH 会话。要分享任何想法或提出问题,请使用下面的评论表。