SSH登录远程卡顿、慢的解决办法

in Linux with 0 comment

发现有一个SSH连接的问题,每次连接远程服务器的时候,都会出现验证速度慢,要经过很长时间的没响应过程。

研究了一下,找到这么几种解决办法:

  1. 修改客户端配置文件ssh_conf(注意,不是sshd_conf)

vi /etc/ssh/ssh_conf

# 找到
# GSSAPIAuthentication yes
# 改为
GSSAPIAuthentication no

实际上,这个GSSAPI认证,是在用户登录的时候,客户端要对服务器端的IP地址进行反向解析,如果服务器的IP地址没有配置PTR记录,那么解析不通过,就会被卡住~等待很长一段时间之后才能连接。

  1. 关闭DNS反向解析

在linux中,默认就是开启了SSH的反向DNS解析,这个也会消耗大量时间。

vim /etc/ssh/sshd_config

UseDNS=no
  1. 修改nsswitch.conf文件

如果SERVER需要通过域名访问其他服务器,则需要保留此行。

hosts: files dns 这一行含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析,如果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。

vim /etc/nsswitch.conf

# 找到
# hosts: files dns XXX
# 改成
hosts:files
  1. GSSAPIAuthentication yes 设置为no

vim /etc/ssh/sshd_config

GSSAPIAuthentication no

最后记得重启下ssh服务

systemctl restart sshd

Responses