centos下解决ssh链接慢问题

转自:http://www.2cto.com/os/201502/377518.html

现在连接linux服务器一般都是使用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信息就可以看到连接到什么地方被耽搁了
比如会显示如下信息:

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

2、检测连接时间
# time ssh [email protected] 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

时间: 2024-10-06 23:12:57

centos下解决ssh链接慢问题的相关文章

转载: CentOS/Linux 解决 SSH 连接慢

http://blog.csdn.net/doiido/article/details/43793391 CentOS/Linux 解决 SSH 连接慢 标签: linuxssh远程连接ssh慢 2015-02-13 13:24 1230人阅读 评论(0) 收藏 举报 分类: Linux 应用(16) 版权声明:本文为博主原创文章,未经博主允许不得转载. 现在连接Linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接

(转)CentOS/Linux 解决 SSH 连接慢

CentOS/Linux 解决 SSH 连接慢 原文:http://blog.csdn.net/doiido/article/details/43793391 现在连接linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很慢.经过网上资料查询,大致是有以下几种原因: 1.SERVER的SSHD会去DNS查找访问的CLIENT IP的HOSTNAME,如果DNS不可用或者没有相关记录,就会消耗一段时间.2.在

Centos下关于ssh、scp与rsync设置与应用

最近应公司要求,需要对文件数据进行远程传输与备份操作,特此写了一篇文章记录下了关于ssh.scp以及rsync的应用配置全过程,可能过程太过罗嗦,但主要就是想在不遗漏每个过程的情况下对此进行阐述,希望大家能够体谅.当然类似的文章还有很多,本文仅以个人的名义来写的,不喜勿喷!如果文章中有什么错误的地方还请各位大神多多指点!万分感谢!一.ssh在文件共享里面的应用这个ssh可不仅仅是一个远程登录的一个服务,其实呢!它包括了几个组件:ssh(远程登录).sftp(文件共享[类似FTP]).scp(文件

centos下配置ssh使用密钥

查询了网上的一些教程,然后根据自己的实际操作,记录自己实际配置ssh密钥的过程: 首先在centos终端切换到要链接的用户,比如用户ssh 使用该用户生成密钥: ssh-keygen -t rsa 中间需要输入密钥的口令 默认会在/home/ssh/.ssh 下面生成id_rsa 和 id_rsa.pub 两个文件 将id_rsa.pub重名命为: authorized_keys mv id_rsa.pub authorized_keys 然后将id_rsa文件剪切到需要使用putty登陆的机器

Centos下解决mysql远程连接端口和权限的问题

1.在CentOS系统中防火墙默认是阻止3306端口的,我们要是想访问mysql数据库,我们需要这个端口,命令如下:  /sbin/iptables -I INPUT -p tcp --dport 3036 -j ACCEPT 我们需要保存我们的操作,命令如下:   /etc/rc.d/init.d/iptables save 此时我们可以查看端口的状态,命令如下:  /etc/init.d/iptables status 当然如果你打开其他端口也一样,只需要把这个端口号换乘你需要的端口号即可.

CentOS/Linux 解决 SSH 连接慢

现在连接linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很慢.经过网上资料查询,大致是有以下几种原因: 1.SERVER的SSHD会去DNS查找访问的CLIENT IP的HOSTNAME,如果DNS不可用或者没有相关记录,就会消耗一段时间. 2.在authentication gssapi-with-mic有时候也会消耗一段时间 一.测试查找具体原因: 1.使用ssh -v host进行debug #

Centos下安装SSH服务

昨天在服务器上弄东西.结果把ssh服务给卸载了. 没想到远程不了了. 接下来介绍如何安装ssh服务. 其实机器是自带ssh服务的. #rpm -qa |grep ssh 检查是否装了SSH包 没有的话yum install openssh-server #chkconfig --list sshd 检查SSHD是否在本运行级别下设置为开机启动 #chkconfig --level 2345 sshd on  如果没设置启动就设置下. #service sshd restart  重新启动 #ne

解决ssh链接服务器超时自动断开的问题

为了安全性:ssh默认的连接超时时间很短:经常就是发个呆就断开了:事实上是可以修改超时时间的. 示例环境: 服务器:centos6.5 1:[[email protected] /]cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak              //养成备份配置项的好习惯 2:[[email protected] /]vim /etc/ssh/sshd_config //删除110行ClientAliveInterval 0 前面的注释

CentOS下解决”用户账户is not in the sudoers file“问题

如上图,在当前用户cent(我的用户名)下使用sudo命令时,提示"cent is not in the sudoers file. This incident will be reported. "问题. 出现此问题,主要是因为用户名cent尚未获取sudo权限,所以需要修改配置文件/etc/sudoers. 修改如下: 首先以root权限登陆,即输入语句:su -,该语句等同于su - root,注意空格. 接下来修改sudoers配置文件,即:visudo.若想查看visudo的