在 CentOS 上遇到 SSH 连接经常断开,一般可以从服务器端、客户端、网络三方面排查和处理。下面按常见原因给你一套实用方案。
编辑 SSH 服务端配置:
vi /etc/ssh/sshd_config
添加或修改:
ClientAliveInterval 60
ClientAliveCountMax 3
含义:
修改后重启 SSH:
systemctl restart sshd
编辑客户端配置(你连接的机器):
vi ~/.ssh/config
添加:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
或命令行临时使用:
ssh -o ServerAliveInterval=60 user@host
ping ip
mtr ip
autossh 自动重连autossh -M 0 -o "ServerAliveInterval=60" user@host
很多路由器会清掉“长时间无数据”的 SSH 连接。
✅ 解决方案:
tmux / screen 防中断任务yum install tmux -y
tmux
断线后重连:
tmux attach
如果频繁登录失败:
systemctl status fail2ban
被封 IP 会直接断:
fail2ban-client status sshd
top
free -h
df -h
✅ 改 sshd_config
✅ 开 ServerAliveInterval
✅ 用 tmux
✅ 检查网络
✅ 看日志
tail -f /var/log/secure
如果你愿意,可以告诉我:
我可以给你更精准的配置。