直接改sshd_config里的usedns no就能解决登录卡顿,90%的慢连问题都出在这儿;先用ssh -v验证是否出现“trying to reverse map address”并卡顿3~5秒,再编辑/etc/ssh/sshd_config设usedns no和gssapiauthentication no,重启sshd后确认日志无reverse map信息。

直接改 sshd_config 里的 UseDNS no 就能解决登录卡顿,90% 的慢连问题都出在这儿。
怎么确认是 UseDNS 导致的延迟
先别急着改配置,用调试模式连一次看日志:
- 执行
ssh -v user@your-server-ip - 留意输出里是否出现
debug1: Trying to reverse map address - 如果这行之后卡住 3~5 秒才继续,基本就是它了
- 注意:这个现象只发生在首次连接建立阶段,登录成功后交互完全不受影响
修改 /etc/ssh/sshd_config 关键两行
编辑服务端配置文件,不是客户端的 ssh_config:
- 运行
sudo vi /etc/ssh/sshd_config - 找到或添加这两行(大小写敏感,空格不能多不能少):
UseDNS noGSSAPIAuthentication no - 如果某行前面有
#,删掉;如果整行不存在,就手动加在文件末尾 - 不用改
/etc/hosts或 DNS 服务器,也不用动nsswitch.conf
重启 sshd 后验证是否生效
改完不重启等于没改:
- 执行
sudo systemctl restart sshd(systemd 系统)或sudo service sshd restart(SysVinit) - 再用普通方式连接:
ssh user@ip,应立刻看到密码提示符 - 重跑
ssh -v,确认日志里不再出现reverse map相关内容 - 注意:
UseDNS no是核心,GSSAPIAuthentication no是配套项——有些系统开启 GSSAPI 后会二次触发 DNS 查询,一起关掉更稳妥
真正容易被忽略的是:这个配置只作用于服务端,且只影响认证前的连接建立环节。如果你在客户端用域名连,那客户端自己的 DNS 解析(正向)不受影响;但服务端不会再拿你的 IP 去查 PTR 记录——哪怕你没配反向 DNS,它也不会等几秒再放弃。











