CentOS 下 SSH 连接超时(连接很慢、卡住或直接 timeout)是比较常见的问题,原因通常可以分为网络层、SSH 服务配置、系统资源/安全策略几类。下面按常见程度给你梳理一下。
排查:
# 本地测试
ping <服务器IP>
telnet <服务器IP> 22
# 或
nc -vz <服务器IP> 22
服务器侧检查:
firewall-cmd --list-all
iptables -L -n
SSH 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 不通会卡很久。
解决:
vi /etc/ssh/sshd_config
修改或添加:
UseDNS no
重启:
systemctl restart sshd
CentOS 默认开启 GSSAPI,某些环境会卡。
修改:
GSSAPIAuthentication no
重启 sshd。
如果你是“连上了但过一会儿断开”,那是:
ClientAliveInterval服务器配置:
ClientAliveInterval 60
ClientAliveCountMax 3
pam 模块卡住(如 ldap、nis)排查:
top
free -m
df -h
/etc/hosts.deny 限制了 IP检查:
getenforce
cat /etc/hosts.deny
ping + telnet 22 是否通/etc/ssh/sshd_config 中:
UseDNS noGSSAPIAuthentication no/var/log/secure 日志tail -f /var/log/secure
如果你愿意,可以告诉我:
我可以帮你更精确定位。