SSH登陆很慢问题的解决

用ssh连其余linux机器,会等待10-30秒才有提示输入密码。严重影响工做效率。登陆很慢,登陆上去后速度正常,这种状况主要有两种可能的缘由:linux

1. DNS反向解析的问题编程

OpenSSH在用户登陆的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登陆的IP是否合法。若是客户机的IP没有域名,或者DNS服务器很慢或不通,那么登陆就会很花时间。windows

解决办法:api

在目标服务器上修改sshd服务器端配置,并重启sshd安全

vi /etc/ssh/sshd_config,设置UseDNS为no便可服务器

固然也能够经过提供DNS正确反向解析的方法解决,有以下两种思路网络

(1) 在server上/etc/hosts文件中把经常使用的ip和hostname加入,而后在/etc/nsswitch.conf看看程序是否先查询hosts文件(通常缺省是这样)。ssh

修改server上的hosts文件,将目标机器的IP和域名加上去。或者让本机的DNS 服务器能解析目标地址。ide

vi /etc/hostsdebug

192.168.12.16  ourdev

其格式是“目标机器IP 目标机器名称”这种方法促效。没有延迟就连上了。不过若是给每台都加一个域名解析,挺辛苦的。但在windows下用putty或secure-crt时能够采用这种方法。

(2)起一台dns服务器(能够是本机),加入反向解析,把这个dns服务器加入到/etc/resolv.conf中。

 

2. 关闭ssh的gssapi认证

用ssh -v user@server 能够看到登陆时有以下信息:

debug1: Next authentication method: gssapi-with-mic

debug1: Unspecified GSS failure. Minor code may provide more information

注:ssh -vvv user@server 能够看到更细的debug信息

解决办法:

在客户端上修改ssh客户端配置(注意不是sshd_conf)

vi /etc/ssh/ssh_config,设置GSSAPIAuthentication no  并重启sshd

可使用

ssh -A -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -p 32200 username@server_ip

GSSAPI ( Generic Security Services Application Programming Interface) 是一套相似Kerberos 5 的通用网络安全系统接口。该接口是对各类不一样的客户端服务器安全机制的封装,以消除安全接口的不一样,下降编程难度。但该接口在目标机器无域名解析时会有问题

使用strace查看后发现,ssh在验证完key以后,进行authentication gssapi-with-mic,此时先去链接DNS服务器,在这以后会进行其余操做。

转自 http://www.linuxidc.com/Linux/2012-12/77144.htm

相关文章
相关标签/搜索