用ssh连其他linux机器,会等待10-30秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因:
1、dns反向解析
OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。
解决办法
在目标服务器上修改sshd服务器端配置,设置UseDNS为no,并重启sshd。
- vi /etc/ssh/sshd_config
设置UseDNS为no。
- service sshd restart
2、gssapi认证
用ssh -v 可能可以看到类似如下提示:
- #下面使用的是GSSAPI-KEYEX来进行验证
- debug1: Next authentication method: gssapi-keyex
- #但是报错:没有可用的Key来交换信息
- debug1: No valid Key exchange context
- #系统接着又使用下一个验证方法:GSSAPI-WITH-MIC
- debug1: Next authentication method: gssapi-with-mic
- #但遗憾的是,GSSAPI-WITH-MIC方法也失败。
- #原因:不能确定数字主机地址的域
- debug1: Unspecified GSS failure. Minor code may provide more information
- Cannot determine realm for numeric host address
- debug1: Unspecified GSS failure. Minor code may provide more information
- Cannot determine realm for numeric host address
- debug1: Unspecified GSS failure. Minor code may provide more information
- debug1: Unspecified GSS failure. Minor code may provide more information
- Cannot determine realm for numeric host address
- # 在尝试几次后,SSH认证终于放弃了这种验证。进入下一个验证:Publickey
- debug1: Next authentication method: publickey
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。
解决办法
在目标服务器上修改sshd服务器端配置,设置GSSAPIAuthentication为no,重启sshd服务。
- vi /etc/ssh/sshd_config
设置GSSAPIAuthentication为no。
- service sshd restart