Linux ssh远程登录时间过长的解决办法
问题描述
今天部门同事给我反馈,说新建的虚拟在ssh远程访问输入用户名后,需要等待大约20s的时间才跳出密码输入界面,下面给出解决办法。
原因分析
这里面主要有两条配置要关闭,接下来是两个配置的特性
UseDNS
UseDNS特性是SSH服务的安全增强特性,默认注释。开启后,服务端会先根据客户端IP进行DNS PTR反向查询,得到客户端主机名。再根据得到的客户端主机名进行DNS正向A记录查询,最后比对得到的IP与原始IP是否一致,用以防止客户端欺骗。
通常情况下,客户端使用的都是动态IP,没有相应的PTR记录。所以,该特性开启后,不仅无法用于信息比对,反而由于相关查询操作增加了操作延迟,最终导致客户端连接速度变慢。
GSSAPIAuthentication
Generic Security Services Application Program Interface,GSSAPI 本身是一套 API,由 IETF 标准化,默认开启yes ,其最主要也是著名的实现是基于 Kerberos 的。一般说到 GSSAPI 都暗指 Kerberos 实现。
GSSAPI 是一套通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。
GSSAPI 主要是基于 Kerberos 的,但 一般用户不配置 Kerberos
主要就是以上两条配置导致ssh远程访问虚机很慢,所以问题原因找到了,我们就可以解决问题了
问题解决
首先进入ssh配置页面
vim /etc/ssh/sshd_config
输入/ , 键入UseDNS,回车,定位到UseDNS,如果后缀是yes就改成no,如果是注释掉的,就去掉前面的#,把后缀yes改成no
输入/ , 键入GSSAPIAuthentication,回车,定位到GSSAPIAuthentication,将后缀改成no
重启ssh服务
systemctl restart sshd
到这里问题就已经解决了,如果按照文章配置后并未能解决你的问题,请给二狗留言。