温馨提示×

CentOS怎么设置SSH超时

小樊
84
2026-07-07 23:17:33
栏目: 智能运维

在 CentOS 中设置 SSH 超时,通常分为 客户端超时服务器端超时 两种情况。下面按常见需求详细说明。


一、设置 SSH 连接空闲超时(服务器端)

这是最常用的方式,防止 SSH 长时间空闲不断开。

1️⃣ 修改 SSH 服务端配置

编辑配置文件:

sudo vi /etc/ssh/sshd_config

添加或修改以下参数:

ClientAliveInterval 300
ClientAliveCountMax 2

含义说明:

参数 说明
ClientAliveInterval 服务器每隔多少秒向客户端发送一次保活请求(秒)
ClientAliveCountMax 客户端无响应多少次后断开连接

✅ 示例解释:

  • 每 300 秒(5 分钟)检测一次
  • 连续 2 次无响应就断开
  • 10 分钟无操作自动断开

2️⃣ 重启 SSH 服务

sudo systemctl restart sshd

二、设置 SSH 登录超时(登录等待时间)

避免用户登录卡住太久。

LoginGraceTime 60
  • 表示登录超时时间为 60 秒
  • 超过时间未成功登录即断开

三、设置 SSH 客户端超时(客户端主动断开)

1️⃣ 修改客户端配置

sudo vi /etc/ssh/ssh_config

添加:

ServerAliveInterval 60
ServerAliveCountMax 3

含义:

  • 每 60 秒向服务器发送保活包
  • 连续 3 次失败则断开

✅ 常用于 防止 NAT / 防火墙断开连接


四、通过 Shell 环境变量设置超时(TMOUT)

⚠️ 这是 Shell 超时,不是 SSH 超时,但常被误用。

export TMOUT=600
  • 单位:秒
  • 600 秒 = 10 分钟无操作自动退出 shell

永久生效(推荐)

echo "export TMOUT=600" >> /etc/profile
source /etc/profile

✅ 适合 安全合规要求


五、常见场景推荐配置

✅ 场景 1:防止 SSH 长时间空闲(服务器)

ClientAliveInterval 300
ClientAliveCountMax 2

✅ 场景 2:防止 NAT / 防火墙断 SSH

ClientAliveInterval 60
ClientAliveCountMax 5

✅ 场景 3:安全合规(自动退出)

TMOUT=600

六、验证是否生效

sshd -T | grep clientalive

如果你能说明:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是 服务器断开 还是 客户端断开
  • ✅ 是否有 安全审计要求

我可以帮你给出最合适的一套配置方案

0