SSH登录卡顿主因是服务端DNS反向解析,需关闭UseDNS和GSSAPIAuthentication:先用sshd -T确认状态,再编辑sshd_config设UseDNS no(独占一行、勿在Match块内)和GSSAPIAuthentication no,经sshd -t校验后重启sshd服务。

Linux服务器SSH登录卡在“Connecting to…”十几秒,多数是服务端对客户端IP做DNS反向解析(PTR查询)导致超时等待,必须关闭UseDNS才能让连接瞬间响应。
确认当前UseDNS是否已关闭
先查真实状态,避免重复操作:运行 sudo sshd -T | grep usedns。输出为 usedns no 表示已生效;若输出 usedns yes 或无任何输出,说明仍启用或配置未加载。
注意:sshd -T 会合并所有生效配置,比直接 grep /etc/ssh/sshd_config 更可靠——因为注释行、Include引入的片段、语法错误都会影响实际行为。
修改sshd_config禁用UseDNS
用 root 权限编辑主配置文件:sudo vi /etc/ssh/sshd_config。
在文件中搜索 UseDNS:如果该行被注释(如 #UseDNS yes),删掉开头的 #;如果已存在但值为 yes,直接改为 UseDNS no;如果整行不存在,在文件末尾添加 UseDNS no(注意大小写,等号前后**不能有空格**)。
【UseDNS no 必须独占一行,且不能出现在 Match 块内部,否则仅对该匹配条件生效】
同步关闭GSSAPIAuthentication(强烈建议)
方法一:在同一个 sshd_config 文件中,找到 GSSAPIAuthentication 行,确保其值为 no。若被注释,取消注释并设为 no;若不存在,就在 UseDNS 下方添加 GSSAPIAuthentication no。
方法二:若你确认不在域环境(如没接入 Active Directory/Kerberos),可直接全局禁用——这步能再省下3~5秒协商时间,尤其在公网连接时效果明显。
验证并重启SSH服务
第一步:检查配置语法是否正确 → 运行 sudo sshd -t,屏幕无任何输出才表示通过;若有报错,【必须修正后再继续,否则重启会导致SSH服务中断】。
第二步:重启服务使配置生效 → sudo systemctl restart sshd(CentOS 7+/Ubuntu 16.04+)或 sudo service ssh restart(Debian旧版、Ubuntu 14.04)。
第三步:立刻验证结果 → 再次执行 sudo sshd -T | grep usedns 和 sudo sshd -T | grep gssapiauthentication,两行输出都应为 no。


















