在 CentOS 上遇到 SSH 连接断开(掉线、被动断开、连不上),可以按下面思路系统排查。
先搞清楚是哪种“断开”:
ping <服务器IP>
telnet <IP> 22
# 或
nc -vz <IP> 22
systemctl status sshd
启动 / 重启:
systemctl start sshd
systemctl restart sshd
ss -lntp | grep ssh
# 或
netstat -lntp | grep ssh
firewall-cmd --list-all
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
iptables -L -n
getenforce
如果是 Enforcing,可临时测试:
setenforce 0
vim /etc/ssh/sshd_config
重点参数:
ClientAliveInterval 60
ClientAliveCountMax 3
修改后重启:
systemctl restart sshd
客户端解决(推荐)
# ~/.ssh/config
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
journalctl -u sshd -f
# 或
tail -f /var/log/secure
常见错误:
Connection closed by remoteFailed passworderror: maximum authentication attemptsulimit -n
free -m
top
dmesg | grep ssh
以下也会导致 SSH 断开:
✅ 网络通不通
✅ 22 端口开没开
✅ sshd 起没起
✅ 防火墙放没放
✅ 日志有没有报错
✅ 是否空闲超时
✅ 是否被中间设备掐断
如果你愿意,可以贴一下:
/var/log/secure)我可以帮你精准定位。