在 CentOS 上排查 SSH 断开 问题,可以按下面步骤逐步查。
SSH 断开通常会记录在系统日志里。
sudo journalctl -u sshd -n 100
或(老版本 CentOS):
sudo tail -n 100 /var/log/secure
重点看类似:
Connection closed by ...Disconnected from ...error: ...timeoutfailed passwordgrep -Ei 'ClientAlive|TCPKeepAlive' /etc/ssh/sshd_config
常见参数:
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
如果没有或值太大,可能空闲被断。
修改后重启:
sudo systemctl restart sshd
ssh -o ServerAliveInterval=60 user@host
ping ip地址
断开瞬间另开窗口:
ss -tnp | grep ssh
# 或
netstat -tnp | grep ssh
如果是云服务器或路由器:
sudo firewall-cmd --list-all
free -h
top
df -h
内存爆了 / 磁盘满也会导致 SSH 异常。
如果是 Linux / macOS:
ssh -vvv user@host
看断在哪一步。
| 现象 | 可能原因 |
|---|---|
| 空闲几分钟断 | ClientAlive / NAT 超时 |
| 登录后立刻断 | shell / PAM / 磁盘满 |
| 传输大文件断 | 网络不稳定 |
| 偶尔断 | 防火墙 / 云厂商限速 |
如果你愿意,可以把下面信息发我,我可以直接帮你判断:
cat /etc/redhat-release)/var/log/secure 里相关报错内容