ssh连接超慢解决

手头有台Linux服务器ssh登录时超级慢,需要几十秒。其它服务器均没有这个问题。平时登录操作都默默忍了。今天终于忍不住想搞清楚到底什么原因。搜索了一下发现了很多关于ssh登录慢的资料,于是自己也学着来分析、印证一下ssh登录慢的原因。

出现ssh登录慢一般有两个原因:DNS反向解析的问题和ssh的gssapi认证

1:ssh的gssapi认证问题

GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题

默认情况下,GSSAPIAuthentication在服务器端和客户端都激活的。如果DNS服务出现问题,那么登录过程要等到DNS查询超时后才能继续,这就是为什么SSH登录提示符要等很久才出现的原因。 为什么ssh登录过程中要用到DNS解析服务呢?这个是GSSAPI认证方式需要的缘故。

所以在配置文件/etc/ssh/sshd_config(服务器)或/etc/ssh/ssh_config(客户端)将参数GSSAPIAuthentication设置为no可以解决ssh登录慢的问题。

2:DNS反向解析的问题

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

问题分析:

首先可以在ssh命令后面加上“-v“ 参数,输出debug信息定位问题。 具体操作为ssh -v [email protected]

[[email protected] ~]# ssh -v [email protected]
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.xxx.xxx [192.168.xxx.xxx] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
The authenticity of host ‘192.168.xxx.xxx (192.168.xxx.xxx)‘ can‘t be established.
RSA key fingerprint is 04:08:57:22:7e:8d:dc:d3:8e:91:20:d0:ba:d9:ed:78.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.xxx.xxx‘ (RSA) to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found
 
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found
 
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found
 
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password
[email protected]‘s password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Sun Sep  6 08:30:47 2015 from 192.168.7.222
[[email protected] ~]# 
 
 

从上面输出信息看到有关于Unspecified GSS failure,于是我将/etc/ssh/sshd_config(服务器)或/etc/ssh/ssh_config(客户端)将参数GSSAPIAuthentication设置为no,重启了sshd服务,测试发现ssh登录还是很慢。

[[email protected] ~]# service sshd status
 
openssh-daemon (pid 3594) is running...
 
[[email protected] ~]# service sshd restart
 
Stopping sshd: [ OK ]
 
Starting sshd: [ OK ]

那么原因应该是DNS反向解析的问题,关于DNS反向解析的问题有几个解决方法:

1:在server上/etc/hosts文件中把常用的ip和hostname加入,然后在/etc/nsswitch.conf看看程序是否先查询hosts文件

2:在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no。然后重启sshd服务

我在/etc/ssh/sshd_config上将UseDNS设置为no,重启sshd服务后,然后测试ssh连接速度。果然飞快连接上。看来主要还是DNS反向解析的问题。

时间: 2024-11-09 05:40:21

ssh连接超慢解决的相关文章

【linux】——FreeBSD 建立 SSH 连接慢的解决方法

一般在编写 linux 程序的时候,会使用 SecureCRT 或者 xshell 等工具远程登录到 linux 服务器上.最近发现在建立 SSH 连接的时候,非常慢,但是建立连接成功之后可以正常使用.这个原因其实是 DNS 的问题.公司提供了两个 DNS 服务器,一个是新的,一个是老的现在作为备用.发现把 DNS 服务器改为新的之后,就不会出现这个情况.解决方案如下: vim /etc/resolv.conf 然后添加信息:  nameserver DNS地址 最后执行命令: /etc/net

Linux SSH连接超级慢解决办法。

最近连SSH接一台Linux服务器时,连接很慢.等了大概40多秒钟.才能连接上,开始以为是网络线路有问题.经过排查发现,其他linux均无次情况.最后对ssh的配置进行了设置和优化,终于解决此问题. 1.关闭DNS反向解析 linux中,默认开启了ssh的反向解析,会很影响ssh的连接速度. [[email protected]_365 ~]# vim /etc/ssh/sshd_config UseDNS no 2.关闭ssh中的GSS认证. 在 GSS是ssh中的一种认证方式.一般情况下用不

解决SSh连接过慢

ssh 连接的时候特别慢 解决方法: 修改配置文件 /etc/ssh/sshd_config GSSAPIAuthentication yes --->no 81行左右 #UseDNS yes -->UseDNS no 122行左右 主要是禁用dns查询功能,这样可以加快ssh连接的速度[[email protected] ~]# service sshd restart停止 sshd: [确定]正在启动 sshd: [确定][[email protected] ~]# -----------

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 #

ssh连接报警 does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! 的解决办法!

ssh连接远程服务器,报警信息 Address X.X.X.X maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! 如下:[root@upgirl ~]# ssh root@192.168.0.203Address 192.168.0.203 maps to localhost, but this does not map back to the address - P

ECS云主机SSH连接提示&ldquo;Connection reset by peer&rdquo;的解决办法和解决思路

三周前刚从上家公司换到新的公司,这家公司与上家公司相比对阿里云的云计算环境更加的依赖,使用的ECS实例和其他服务如SLB.RDS.OSS等更多了一个数量级.这篇文章的背景就是为了解决阿里云ECS云主机SSH连接的一个问题,从故障发现到故障排除到最后反思的一个详细过程.文章比较长,图片众多,建议有时间仔细阅读,没时间就阅读文末的"总结和反思"部分即可. 故障发现: 2017-05-23 下午17:00点前同事报告称GitLab所在的服务器访问出现异常.经查发现在公司内无法正常通过SSH连

ssh 连接缓慢解决方法

重新安装机器的情况下我们经常会遇到的一个情况是telnet到server速度很快,但是ssh连接的时候却很慢,大概 要等半分钟甚至更久.ping的速度也非常好,让人误以为是ssh连接不上. 下面说下如何解决这样的问题,最为常见的原因是因为server的sshd会去DNS查找访问 client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间. 1.在server上/etc/hosts文件中把你本机的ip和hostname加入 2.在server上/etc/ssh/ssh

linux技巧:解决ssh连接等待延迟的问题

解决ssh连接等待几秒的问题 平时我们连接ssh的时候,经常要等5秒或者更长的时候,才能连上,因为是虚拟机,主机通过vmnet8和虚拟机是同一网段,不存在延迟的问题,那一定是虚拟机sshd配置的问题.困恼了好久,突然任同学提到sshd_config的一个参数配置useDNS能解决这个问题,上网查了查信息,果然有影响,解释是这样的: ssh尽管用ip连接,但是ssh连接的时候,服务器端会去查IP的PTR记录,由于查不到PTR记录,最后返回错误,才回来响应客户端的连接,此过程中,客户端一直处于等待状

转载: 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连接