使用 ssh 客户端(如:putty)连线 Linux 站群服务器,可能会等待 10-30 秒才有提示输入密码,严重影响工作效率。登入很慢,登入上去后速度正常,这种情况主要有两种可能的原因:
1. DNS 反向解析问题
OpenSSH 在使用者登入的时候会验证 ip,它根据使用者的 IP 使用反向 DNS 找到 WordPress 主机名,再使用 DNS 找到 IP 地址,最后匹配一下登入的 IP 是否合法。如果客户机的 IP 没有域名,或者 DNS 站群服务器很慢或不通,那么登入就会很花时间。
解决办法:
在目标站群服务器上修改 sshd 站群服务器端配置, 并重启 sshd
vi /etc/ssh/sshd_config
UseDNS no
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 资讯
解决办法:
修改 sshd 站群服务器端配置
vi /etc/ssh/ssh_config
GSSAPIAuthentication no
可以使用 ssh -o GSSAPIAuthentication=no user@server 登入
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似 Kerberos 5 的通用互联网安全系统介面,该介面是对各种不同的客户端站群服务器安全机制的封装,以消除安全介面的不同,降低程式设计难度,但该介面在目标机器无域名解析时会有问题, 使用 strace 检视后发现,ssh 在验证完 key 之后,进行 authentication gssapi-with-mic,此时先去连线 DNS 站群服务器,在这之后会进行其他操作。
原文转载自《Linux 就该这么学》:http://www.linuxprobe.com/ssh-login-slowly/