l 故障现象:
在使用SSH工具远程登录服务器时,出现登陆提示符很久才出现的情况。
l 问题查找:
可以在ssh命令后面加上“-v“ 参数,输出debug信息定位问题。
通常你会看到类似这样的信息:
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
Cannot determine realm for numeric host address
l 故障原因:
看过上面的输出结果,很明显这是由于DNS解析问题导致的。
1. 为什么ssh登录过程中要用到DNS解析服务呢?
再仔细看看上面debug的输出,是GSSAPI认证方式惹得祸。
2. 为什么SSH登录过程中要用到GSSAPI认证呢?
GSSAPI是一种用于在网络应用中执行强加密认证的ITEF 标准,在支持SSH V2的服务器上都是默认开启的。
3. 造成慢的原因到底是什么呢?
默认情况下,GSSAPIAuthentication在服务器端和客户端都激活的。如果DNS服务出现问题,那么登录过程要等到DNS查询超时后才能继续,这就是为什么SSH登录提示符要等很久才出现的原因。
l 解决方法:
1. 如果远程SSH服务器无法改动,则修改ssh客户端配置文件
# vi /etc/ssh/ssh_config(以Linux客户端为例)
设置:GSSAPIAuthentication no
2. 修改远程SSH服务器的配置
# vi /etc/ssh/sshd_config
设置:GSSAPIAuthentication no
同时也可以设置不使用DNS解析:UseDNS no
然后重启sshd服务 /etc/init.d/sshd restart