在 CentOS 上 SSH 登录速度慢(连接或输入密码后等待很久)是非常常见的问题,通常不是网络本身慢,而是 SSH 服务端在做额外检查或解析。下面按最常见 → 较少见给你梳理原因和解决办法。
SSH 默认会尝试对客户端 IP 做 reverse DNS 查询。
如果 DNS 服务器不可达或响应慢,就会卡很久。
✅ 解决方法(推荐):
vi /etc/ssh/sshd_config
修改或添加:
UseDNS no
然后重启 sshd:
systemctl restart sshd
CentOS 默认启用 GSSAPI,会在登录时尝试 Kerberos 认证。
✅ 解决方法:
vi /etc/ssh/sshd_config
设置:
GSSAPIAuthentication no
重启:
systemctl restart sshd
客户端也可以加参数测试:
ssh -o GSSAPIAuthentication=no user@host
常见于:
可临时测试:
ssh -o PreferredAuthentications=password user@host
查看日志:
journalctl -xe
如果服务器 hostname 不在 /etc/hosts 中,也可能导致慢。
✅ 建议:
vi /etc/hosts
添加:
127.0.0.1 localhost localhost.localdomain
::1 localhost
个别情况下:
可临时测试:
setenforce 0
如果:
可测试:
ping -s 1472 host
ssh -v user@host
你会看到卡在:
expecting SSH2_MSG_SERVICE_ACCEPT → DNS / GSSAPIpledge: network → PAM / systemdUseDNS no
GSSAPIAuthentication no
systemctl restart sshd
| 系统 | 特点 |
|---|---|
| CentOS 6 | 默认 UseDNS yes |
| CentOS 7 | GSSAPI 容易慢 |
| CentOS 8/Stream | systemd session 慢常见 |
如果你愿意,可以告诉我:
cat /etc/redhat-release)我可以给你更精确的建议。