从服务器端或客户端解决ssh登录慢问题

 当客户机的dns无法连通后,用ssh登录远程主机就会出现要等很久才能连上的情况。

解决办法:

只设置客户端解决法

方法1,修改ssh_config配置文件,此法能解决连接所有服务器端慢的问题

[root@centos /]# vim /etc/ssh/ssh_config 

GSSAPIAuthentication no
 
保存即可!以后连接就不会出现慢的情况了。
 
方法2,在/etc/hosts里面添加对应关系法,此法只能解决指定ip登录问题
[root@centos /]# vim /etc/hosts
10.3.0.101      centos581
只有在hosts里面添加了的主机连接才会快。没添加的依然慢。
 
只设置服务器端解决办法
方法1,修改sshd_config
[root@centos581 ~]# vim /etc/ssh/sshd_config 
GSSAPIAuthentication no
默认是这项的值是yes,同样的,改为no解决一切问题
 
 
 
具体原因可以用ssh -v 来查找。如当我设置GSSAPIAuthentication yes时
[root@centos /]# ssh  -v 10.3.0.101
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
............
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic    <--------在这个地方会卡非常久
.............
debug1: An invalid name was supplied
Cannot determine realm for numeric host address    <---------这里在逆向解析地址
debug1: Next authentication method: password
[email protected]'s password: 
根据上述情况可知,问题出在了gssapi认证方面。所以在客户端关掉gssapi认证就行了!
关闭后再用ssh -v 10.3.0.101看看有什么不同
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: publickey
这时候就直接跳过了认证了。结果很快就连上了。
 
以下为我个人的理解,仅供参考:
认证慢的主要原因在于逆向解析,我们知道一般解析的时候会先查找hosts文件,找不到再问dns。所以,添加进hosts文件后会很快。如果hosts中没有,而dns存在的话,dns会马上返回信息给ssh,而不管这个ip的主机名是否被正确的找到。这时候验证这一步仍然会很快。而如果dns不存在的话,那么进程会一直不停的偿试连接指定的dns来获得返回信息,经过几次偿试失败后才最终放弃,所以这个过程就变得相当的漫长。
 

你可能感兴趣的:(ssh,ssh登录慢,ssh逆向解析)