阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS/Linux 解决 SSH 连接慢

199次阅读
没有评论

共计 2380 个字符,预计需要花费 6 分钟才能阅读完成。

现在连接 inux 服务器一般都是使用 SSH 远程连接的方式。最近新装了一台服务器,发现 telnet 时速度很快,ping 时一切也正常,但 SSH 连接的时候却很慢。经过网上资料查询,大致是有以下几种原因:

1、SERVER 的 SSHD 会去 DNS 查找访问的 CLIENT IP 的 HOSTNAME,如果 DNS 不可用或者没有相关记录,就会消耗一段时间。
2、在 authentication gssapi-with-mic 有时候也会消耗一段时间

一、测试查找具体原因:
1、使用 ssh -v host 进行 debug
# ssh -v 192.168.100.10
然后就会输出一大堆 debug,通过 debug 信息就可以看到连接到什么地方被耽搁了
比如会显示如下信息:
[html] view plaincopyprint?debug1: Next authentication method: gssapi-with-mic 
debug1: Unspecified GSS failure. Minor code may provide more information 
No credentials cache found 

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

2、检测连接时间
# time ssh root@192.168.100.10 exit

二、解决方法(建议一个个设置,因为每个人连接慢的原因都不一样):

注意:修改之后记得重启 sshd 服务
# service sshd restart

1、关闭 DNS 反向解析
在 linux 中,默认就是开启了 SSH 的反向 DNS 解析, 这个会消耗大量时间,因此需要关闭。
# vi /etc/ssh/sshd_config
UseDNS=no

在配置文件中,虽然 UseDNS yes 是被注释的,但默认开关就是 yes

2、关闭 SERVER 上的 GSS 认证
在 authentication gssapi-with-mic 有很大的可能出现问题,因此关闭 GSS 认证可以提高 ssh 连接速度。
# vi /etc/ssh/sshd_config
GSSAPIAuthentication no

3、修改 server 上 nsswitch.conf 文件
# vi /etc/nsswitch.conf
找到
hosts:files dns
改为
hosts:files

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

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

4、修改 SERVER 上 resolv.conf 文件
4.1、删除 /etc/resolv.conf 中所有不使用的 IP。
4.2、把 nameserver 全部删除,问题也能解决,但是服务器就无法上网了。
4.3、如果 SERVER 曾经配置过双网卡,则在该文件中会有一行目前不使用的 IP 地址,删除该行即可。

5、修改 SERVER 上 hosts 文件
在 SERVER 上 /etc/hosts 文件中把客户端的 IP 和 HOSTNAME 加入

6、打开 SERVER 上的 IgnoreRhosts 参数
IgnoreRhosts 参数可以忽略以前登录过主机的记录,设置为 yes 后可以极大的提高连接速度
# vi /etc/ssh/sshd_config
IgnoreRhosts yes

——————– 以上的均在 SERVER 上设置,以下的均在 CLIENT 上设置 ———————–

7、修改客户端的 hosts 文件
将目标 SERVER 的 IP 和域名加上去, 使得本机的 DNS 服务能解析目标地址。
# vi /etc/hosts
192.168.100.11  doiido.com

注:hosts 文件格式为 ’ 目标 SERVER_IP 目标 SERVER_NAME’。但是使用这个方法有一个弊端,如果需要给每台 SERVER 都添加一个域名解析。

8、修改客户端配置文件 ssh_conf(注意,不是 sshd_conf)
# vi /etc/ssh/ssh_conf
找到
GSSAPIAuthentication yes
改为

GSSAPIAuthentication no

ssh 连接慢解决办法  http://www.linuxidc.com/Linux/2013-02/79898.htm

提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm

开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04  http://www.linuxidc.com/Linux/2014-09/106809.htm

如何为 Linux 系统中的 SSH 添加双重认证 http://www.linuxidc.com/Linux/2014-08/105998.htm

在 Linux 中为非 SSH 用户配置 SFTP 环境 http://www.linuxidc.com/Linux/2014-08/105865.htm

Linux 上 SSH 服务的配置和管理 http://www.linuxidc.com/Linux/2014-06/103627.htm

SSH 入门学习基础教程 http://www.linuxidc.com/Linux/2014-06/103008.htm

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2380字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中