CentOS 下 SSH 登录慢,常见原因和对应解决办法如下,按最常见 → 较少见顺序排列,你可以逐项排查。
SSH 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或很慢,就会卡很久。
编辑 SSH 服务端配置:
vi /etc/ssh/sshd_config
修改或添加:
UseDNS no
如果有这一行也建议关掉 GSSAPI:
GSSAPIAuthentication no
重启 SSH:
systemctl restart sshd
✅ 这一步通常能立刻见效
编辑:
vi /etc/ssh/sshd_config
确保:
UsePAM yes
但检查:
vi /etc/pam.d/sshd
注释掉明显不必要的模块(如 pam_systemd 在某些场景会慢)
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
长期方案:
vi ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
time ssh user@host echo ok
临时测试:
setenforce 0
systemctl stop firewalld
排查:
top
iostat -x 1
journalctl -u sshd -f
禁用 IPv6 测试:
ssh -4 user@host
如有效,可禁用 IPv6:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sed -i 's/^#*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
sed -i 's/^#*GSSAPIAuthentication.*/GSSAPIAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
如果你愿意,可以告诉我:
我可以给你更精准的方案。