连接linux服务器一般都是使用SSH远程连接的方式。有时,SSH连接速度很慢,大约30s左右,但是ping时一切正常。
问题原因
1、server的sshd会去DNS查找访问的client ip的hostname,如果DNS不可用或者没有相关记录,就会消耗一段时间。(我是这种情况)
2、在authentication gssapi-with-mic有时候也会消耗一段时间
排查过程
测试查找具体原因:
使用ssh -v host进行debug
ssh -v IP
然后就会输出一大堆debug,通过debug信息就可以看到连接到什么地方被耽搁了
比如会显示如下信息:
报错是,关于Unspecified GSS failure
检测连接时间
time ssh root@IP exit
处理方法
方法1、关闭DNS反向解析(我的这种原因)
1、在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。
在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes
注意:修改之后记得重启sshd服务/etc/init.d/sshd restart
systemctl restart sshd
2、或者将dns配置注释掉(不推荐)
# vim /etc/resolv.conf
将里面的nameserver加#注释掉
方法2、关闭server上的GSS认证
在authentication gssapi-with-mic有很大的可能出现问题,因此关闭GSS认证可以提高ssh连接速度。
# vim /etc/ssh/sshd_config
修改GSSAPIAuthentication no
同理重启ssh服务
标签:sshd,etc,GSS,远程,排查,ssh,DNS,连接
From: https://www.cnblogs.com/wxp100/p/18121327