共计 949 个字符,预计需要花费 3 分钟才能阅读完成。
本文由 LinuxProbe.Com 团队成员 魏丽猿 整理发布,原文来自:Linux 运维笔记。
使用 ssh 客户端(如:putty)连接 Linux 服务器,可能会等待 10-30 秒才有提示输入密码,严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因:
OpenSSH 在用户登录的时候会验证 IP,它根据用户的 IP 使用反向 DNS 找到主机名,再使用 DNS 找到 IP 地址,最后匹配一下登录的 IP 是否合法。如果客户机的 IP 没有域名,或者 DNS 服务器很慢或不通,那么登录就会很花时间。
在目标服务器上修改 sshd 服务器端配置, 并重启 sshd
vi /etc/ssh/sshd_config
UseDNS no
用 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 服务器,在这之后会进行其他操作。
相关学习链接:https://www.linuxprobe.com/chapter-08/#83 |