问题分析:
可以在ssh命令登录的时候加上“-v“ 参数,输出debug信息定位问题。
具体操作例子:ssh -v 192.168.1.1
发现如下信息等待时间过长:
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
出现ssh登录慢一般有两个原因
:
1、ssh的gssapi认证
2、DNS反向解析的问题
1、ssh的gssapi认证问题
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题
默认情况下,GSSAPIAuthentication在服务器端和客户端都激活的。如果DNS服务出现问题,那么登录过程要等到DNS查询超时后才能继续,这就是为什么SSH登录提示符要等很久才出现的原因。 为什么ssh登录过程中要用到DNS解析服务呢?这个是GSSAPI认证方式需要的缘故。
解决方法:
vim /etc/ssh/sshd_config 编辑修改以下两个参数
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
改成
GSSAPIAuthentication no
GSSAPICleanupCredentials no
改完/etc/init.d/sshd restart重启
2、DNS反向解析的问题
OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。
解决如下:
vim /etc/ssh/sshd_config 编辑修改
#UseDNS yes
改成
UseDNS
no
改完/etc/init.d/sshd restart重启
或者在客户端的hosts文件里面添加客户端的IP和主机名