/etc/ssh/sshd_config 是ubuntu的ssh配置文件(注意不是ssh_config,豆包说这是客户端的)
ClientAliveInterval 300 #发送客户端活跃检测的间隔时间300S
ClientAliveCountMax 3 #活跃间隔最大尝试次数3
另外
LoginGraceTime 120 #登录120s内不完成即超时。

sudo sshd -t #校验配置语法(非常重要,防止 sshd 起不来!)
sudo systemctl restart sshd# 重启sshd服务
sudo systemctl status sshd # 查看sshd状态

如下补充没有亲测
如何配置从本机(被配置机)发起的SSH不被主动踢掉(客户端保活:主动发包,维持长连接,不是踢会话)
nano ~/.ssh/config#当前用户 ssh 配置
Host *
ServerAliveInterval 60#含义:客户端每 60 秒发心跳,
ServerAliveCountMax 3#连续 3 次没收到服务器回复,客户端主动断连。
ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@ip #单次临时连接生效(命令行参数,不保存)

常见问题区分

  1. ClientAlive*(sshd_config):服务器主动检测客户端空闲,达到阈值踢会话(控制超时断开)
  2. ServerAlive*(ssh_config):客户端主动发包保活,防止防火墙 / NAT 把空闲连接干掉
  3. TCPKeepAlive yes:TCP 底层保活,容易被网关伪造,优先使用 ClientAlive/ServerAlive(加密通道心跳)

另外 可以在shell 层面设置bash shell空闲超时 另一种方式
这个是 shell 层面,不是 ssh 协议。编辑 /etc/profile

export TMOUT=900 #900 秒无输入自动退出 shell,和 sshd 的 ClientAlive 可以叠加使用。

 posted on 2026-10-16 09:41  路边一菜贩  阅读(9)  评论(0)    收藏  举报