目录
-
问题:
前段时间新装的一个虚拟机centos系统,发现用ssh登录非常慢,要等很久,并不是虚拟机反应慢,登录后操作反应都很正常, 所以判断为ssh的过程慢,查阅了一些资料,大致找到问题所在。 -
原因:
在centos系统中,有一个OpenSSH守护程序配置文件,/etc/ssh/sshd_config文件,其中记录了OpenSSH服务的一些配置信息
其中有一项,UseDNS yes,默认是注释掉的,但是实际的值也是yes。这个在 帮助页中能看到:man sshd_config
这一段翻译过来就是:
指定sshd(8)是否应查找远程主机名,并检查远程IP地址的已解析主机名是否映射回同一IP地址。默认值为“是”。
如果将此选项设置为“否”,则在~/.ssh/authorized_keys from和sshd_config Match host指令中只能使用地址而不能使用主机名。
所以其实默认情况下,每次使用OpenSSH服务,ssh登录的时候都会进行一次反向DNS查询,来验证身份,但是这并没有什么实际作用,反而会大量浪费验证时间,使得登录缓慢。
关于UseDNS选项的意义,可以参考这里的讨论 -
解决办法:
找到问题所在,解决其实很容易,将UseDNS值修改为否即可。
然后重启sshd服务:
systemctl restart sshd
再重新登录会快很多!