Ubuntu 上 SSH 连接很慢,通常并不是网速问题,而是登录阶段某些步骤被卡住。下面按最常见 → 较少见的原因给你排查思路和解决办法。
SSH 默认会尝试对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或很慢,就会卡十几秒。
表现
ssh user@ip 后要等很久解决办法(推荐)
sudo vim /etc/ssh/sshd_config
修改或添加:
UseDNS no
然后:
sudo systemctl restart ssh
✅ 这是最有效的优化
Ubuntu 默认启用了 GSSAPI,企业环境外几乎没用,但会尝试联系 Kerberos。
解决办法
GSSAPIAuthentication no
同样重启 ssh:
sudo systemctl restart ssh
如果连接快,但登录后卡:
检查:
~/.bashrc~/.profile/etc/profile/etc/profile.d/*可能问题:
curl 外网PATH 初始化快速验证
ssh user@host 'echo ok'
如果这条很快,说明是 shell 启动脚本问题。
ufw 规则过多fail2ban 扫描日志慢检查
systemctl status fail2ban
如果服务器优先尝试 IPv6,但网络不支持:
AddressFamily inet
加入 sshd_config
编辑本地:
~/.ssh/config
Host *
ForwardX11 no
GSSAPIAuthentication no
你可以依次试:
UseDNS noGSSAPIAuthentication noUbuntu SSH 慢,90% 是 DNS 反向解析 + GSSAPI 认证导致的,关掉基本立刻见效。
如果你愿意,可以把:
ssh -v user@host 的输出sshd_config 内容贴出来我可以帮你精准定位是哪一个原因。