在 CentOS 上 SSH 登录慢(连接慢、输入密码后等很久、或连之前就卡)是常见问题,常见原因和对应排查/解决方法如下:
SSH 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或慢,就会卡很久。
现象:
解决:
vi /etc/ssh/sshd_config
修改或添加:
UseDNS no
重启 sshd:
systemctl restart sshd
CentOS 默认开启了 GSSAPI,在域环境外会明显变慢。
解决:
GSSAPIAuthentication no
重启 sshd。
/etc/profile~/.bashrc~/.bash_profile排查:
time ssh user@host echo ok
若登录后执行命令慢,多半是 shell 初始化问题。
临时排查:
systemctl stop firewalld
setenforce 0
排查:
ping -M do -s 1472 host
mtr host
AuthorizedKeysCommand 慢客户端可加:
ssh -o IdentitiesOnly=yes user@host
检查以下项:
PubkeyAuthentication yes
PasswordAuthentication yes
MaxStartups 10:30:100
# 1. 关闭 DNS
UseDNS no
# 2. 关闭 GSSAPI
GSSAPIAuthentication no
# 3. 重启
systemctl restart sshd
# 4. 测试
time ssh user@host echo ok
你可以补充:
我可以给你更精确的方案。