Linux——ssh登录很慢解决方法

1、背景

  在同一机房中,有多台安装了CentOS 7操作系统的服务器,它们的配置除了IP地址不同外基本相同。这些服务器的资源利用率都不高,但在使用SSH连接时,发现有几台服务器连接速度较慢,可能需要等待30-60秒才能提示输入密码,但一旦连接成功后,速度就恢复正常。

2、SSH登陆慢原因

这种情况主要有两种可能的原因:

2.1. DNS反向解析问题

OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。

解决办法:

在目标服务器上修改sshd服务器端配置,默认情况下会有一行被注释掉的记录#UseDNS yes,虽然这条记录被注释掉了,但ssh缺省情况下UseDNS的值是yes,所以要显式的指定该值为no。

vi /etc/ssh/sshd_config
UseDNS no

并重启ssh服务。

systemctl restart sshd.service

2.2 关闭ssh的gssapi认证

用ssh -v user@server 可以看到登录时有如下信息:

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information

注意 1:ssh -vvv user@server 可以看到更细的debug信息。

注意 2:GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口,该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度,但该接口在目标机器无域名解析时会有问题,使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作。

解决办法:

修改sshd服务器端配置。

vi /etc/ssh/sshd_config
GSSAPIAuthentication no

并重启ssh服务。

systemctl restart sshd.service

3、总结

  在连接速度较慢的机器均修改了sshd配置,同时关闭DNS反向解析以及gssapi认证,修改后机器ssh都很快,秒连。

posted @ 2024-04-01 19:51  人艰不拆_zmc  阅读(836)  评论(0编辑  收藏  举报