SSH连接反应慢的分析解决

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://xjsunjie.blog.51cto.com/999372/658354

<!--正文 begin-->

     最近有朋友咨询一个问题,说是SSH连接反应非常慢,具体现象就是在内网中通过SSH进行连接其他服务器时,发现初始连接非常慢,常常要等30秒左右才出现相关界面,登录之后一切操作是正常的。

   SSH协议介绍:SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

     对于这个问题我们可以用ssh的详细模式跟踪(ssh -v x.x.x.x)一下,发现主要问题出在GSS认证和DNS解析上。在SSH连接中,GSSAPIAuthentication 参数主要是用于 Kerberos 校验认证的,USEDNS是用来做反向查询的。看一个图示:



 

最后一行显示了GSSAPI认证的进行过程。在UseDNS选项打开状态下,当客户端试图登录OpenSSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询,查询出客户端的host name,然后根据查询出的客户端host name进行DNS 正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种手段,但一般我们的IP是不会有PTR记录的,打开这个选项只能浪费时间,所以这两项认证可以关闭。
      

       针对分析的结果,我们修改/etc/ssh/sshd_config 文件,设置GSSAPIAuthentication no ,同时设置 UseDNS no,最后保存修改,重启sshd服务再连接这个问题就可以解决了。
看图示:

 

注:如果服务器换了环境,需要正确配置DNS,如果没有配DNS或不需要DNS,可以关闭SSH的USEDNS选项。

本文出自 “滴水穿石” 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/658354

猜你喜欢

转载自thomas0988.iteye.com/blog/1546256