Total Pageviews

Thursday, 16 February 2012

关闭OpenSSH的UseDNS选项,加速SSH登录

ssh登录服务器时总是要停顿等待一下才能连接上,这是因为OpenSSH服务器有一个DNS查找选项UseDNS默认是打开的。
UseDNS选项打开状态下,当客户端试图登录OpenSSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询,查询出客户端的host name,然后根据查询出的客户端host name进行DNS 正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种手段,但一般我们的IP是动态的,不会有PTR记录的,打开这个选项不过是在白白浪费时间而已。

nano /etc/ssh/sshd_config

在文件最后增加 UseDNS no
保存退出。

/etc/init.d/ssh restart
就可以加快ssh登录的速度了
--------------------------------------
 在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选项。
--------------------
修改服务端的配置文件 vi /etc/ssh/sshd_config,将UseDNS yes改成UseDNS no,如果该项前有”#”的话,需要删掉这个”#”字符。
--------------------
echo "Compression yes" >> /etc/ssh/sshd_config 
/etc/init.d/sshd restart