云服务器 SSH 登录要等十几秒?从 UseDNS 和 GSSAPI 查起

举报
yd_215738027 发表于 2026/11/10 03:09:24 2026/11/10
【摘要】 很多人刚买云服务器时都遇到过:ssh 输入命令后,要卡十几秒才弹出密码提示或进入终端。网络带宽并不差,ping 也正常,问题往往出在 sshd 的两项“反查”上。下面记录一次排查和处理过程,命令在 Ubuntu 22.04/24.04 和 openEuler 上都适用。一、先确认慢在哪一步在本地加 -v 参数登录,看日志停在哪:ssh -v root@你的服务器IP如果日志停在 “debug...

很多人刚买云服务器时都遇到过:ssh 输入命令后,要卡十几秒才弹出密码提示或进入终端。网络带宽并不差,ping 也正常,问题往往出在 sshd 的两项“反查”上。下面记录一次排查和处理过程,命令在 Ubuntu 22.04/24.04 和 openEuler 上都适用。

一、先确认慢在哪一步

在本地加 -v 参数登录,看日志停在哪:

ssh -v root@你的服务器IP

如果日志停在 “debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password” 附近很久,基本是 GSSAPI 认证在尝试;如果停在 “debug1: SSH2_MSG_SERVICE_ACCEPT received” 之后、认证之前,常见原因是服务端在做 DNS 反向解析。

也可以用 time 量化一下:

time ssh root@你的服务器IP exit

二、原因1:UseDNS 反向解析

sshd 开启 UseDNS 时,会把客户端 IP 反查成主机名。云服务器的内网 DNS 往往查不到你家宽带 IP 的 PTR 记录,只能等超时,于是每次登录都白等几秒。

查看当前配置:

sudo sshd -T | grep -i usedns

处理:编辑 /etc/ssh/sshd_config(或在 /etc/ssh/sshd_config.d/ 下新建 99-fast-login.conf),写入:

UseDNS no

三、原因2:GSSAPI 认证

GSSAPI 是给 Kerberos 环境用的,个人服务器基本用不到,但客户端默认会先尝试它。

服务端可设置:

GSSAPIAuthentication no

客户端也可以在 ~/.ssh/config 里加:

Host *
GSSAPIAuthentication no

四、改完后安全地生效

改 sshd 配置最怕把自己锁在门外,建议按这个顺序:

  1. 先检查语法:sudo sshd -t (没有输出就是正确)
  2. 保持当前会话不要关
  3. 重载服务:sudo systemctl reload ssh (openEuler/CentOS 上是 sshd)
  4. 新开一个终端测试登录,确认能进再关旧会话

五、其他可能的原因

  • /etc/resolv.conf 里的 DNS 不可达:用 resolvectl status 或 cat /etc/resolv.conf 检查,换成可用的 DNS。
  • 主机名解析不到:执行 hostname,确认 /etc/hosts 里有 127.0.1.1 对应本机主机名,否则 sudo 等命令也会变慢。
  • 服务器负载过高:用 uptime、top 看看 load 和 CPU,内存小的机器在 swap 频繁时登录也会卡。

六、小结

登录慢时先用 ssh -v 定位卡住的阶段,再针对性关闭 UseDNS 或 GSSAPI。这两项修改只影响登录前的反查和认证尝试,不降低密钥或密码认证本身的安全性。只有在按主机名写 AllowUsers 这类规则时,才需要保留 UseDNS。改完用 time ssh … exit 对比前后耗时,就能确认是否见效。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。