Loading... ## 1、背景 在同一机房中,有多台安装了CentOS 7操作系统的服务器,它们的配置除了IP地址不同外基本相同。这些服务器的资源利用率都不高,但在使用SSH连接时,发现有几台服务器连接速度较慢,可能需要等待30-60秒才能提示输入密码,但一旦连接成功后,速度就恢复正常。 ## 2、SSH登陆慢原因 这种情况主要有两种可能的原因: ### **2.1. DNS反向解析问题** OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。 **解决办法:** 在目标服务器上修改sshd服务器端配置,默认情况下会有一行被注释掉的记录#UseDNS yes,虽然这条记录被注释掉了,但ssh缺省情况下UseDNS的值是yes,所以要显式的指定该值为no。 ``` vi /etc/ssh/sshd_config UseDNS no ``` 并重启ssh服务。 ``` systemctl restart sshd.service ``` ### **2.2 关闭ssh的gssapi认证** 用ssh -v user@server 可以看到登录时有如下信息: ``` debug1: Next authentication method: gssapi-with-mic debug1: Unspecified GSS failure. Minor code may provide more information ``` > 注意 1:ssh -vvv user@server 可以看到更细的debug信息。 > > 注意 2:GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口,该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度,但该接口在目标机器无域名解析时会有问题,使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作。 **解决办法:** 修改sshd服务器端配置。 ``` vi /etc/ssh/sshd_config GSSAPIAuthentication no ``` 并重启ssh服务。 ``` systemctl restart sshd.service ``` ## 3、总结 在连接速度较慢的机器均修改了sshd配置,同时关闭DNS反向解析以及gssapi认证,修改后机器ssh都很快,秒连。 最后修改:2025 年 04 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏