温馨提示×

为什么Ubuntu SSH很慢

小樊
48
2026-09-28 05:40:44
栏目: 智能运维

Ubuntu 上 SSH 连接很慢,通常并不是网速问题,而是登录阶段某些步骤被卡住。下面按最常见 → 较少见的原因给你排查思路和解决办法。


一、最常见原因(90% 情况)

1️⃣ DNS 反向解析(最常见)

SSH 默认会尝试对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或很慢,就会卡十几秒。

表现

  • 输入密码前特别慢
  • 输入 ssh user@ip 后要等很久

解决办法(推荐)

sudo vim /etc/ssh/sshd_config

修改或添加:

UseDNS no

然后:

sudo systemctl restart ssh

✅ 这是最有效的优化


2️⃣ GSSAPI 认证(第二个常见坑)

Ubuntu 默认启用了 GSSAPI,企业环境外几乎没用,但会尝试联系 Kerberos。

解决办法

GSSAPIAuthentication no

同样重启 ssh:

sudo systemctl restart ssh

二、登录后慢(不是连接慢)

3️⃣ PAM / 登录脚本慢

如果连接快,但登录后卡:

检查:

  • ~/.bashrc
  • ~/.profile
  • /etc/profile
  • /etc/profile.d/*

可能问题:

  • 网络挂载(NFS)
  • 每次登录都 curl 外网
  • 复杂的 PATH 初始化

快速验证

ssh user@host 'echo ok'

如果这条很快,说明是 shell 启动脚本问题。


三、网络 / 安全相关

4️⃣ 防火墙或 fail2ban 延迟

  • ufw 规则过多
  • fail2ban 扫描日志慢

检查

systemctl status fail2ban

5️⃣ IPv6 问题

如果服务器优先尝试 IPv6,但网络不支持:

AddressFamily inet

加入 sshd_config


四、客户端也能优化

6️⃣ 客户端 SSH 配置

编辑本地:

~/.ssh/config
Host *
    ForwardX11 no
    GSSAPIAuthentication no

五、快速自检清单 ✅

你可以依次试:

  1. UseDNS no
  2. GSSAPIAuthentication no
  3. 登录后执行命令是否快
  4. 是否用了 NFS / 外部脚本
  5. 是否 IPv6 问题

六、一句话总结

Ubuntu SSH 慢,90% 是 DNS 反向解析 + GSSAPI 认证导致的,关掉基本立刻见效。

如果你愿意,可以把:

  • ssh -v user@host 的输出
  • 或 sshd_config 内容贴出来

我可以帮你精准定位是哪一个原因。

0 踩