您的位置:首页 > 其它

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

2012-09-19 19:53 447 查看
当客户机的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
root@10.3.0.101'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来获得返回信息,经过几次偿试失败后才最终放弃,所以这个过程就变得相当的漫长。

本文出自 “小子无名” 博客,请务必保留此出处http://linuxroad.blog.51cto.com/765922/998916
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: