SSH连接很慢的解决办法

现象:

在局域网内,能ping通目标机器,并且时延是微秒级。

用ssh连局域网内其他linux机器,会等待10-30秒才有提示输入密码。严重影响工作效率。

 

========================

客户端操作系统版本:

zhouhh@zhhofs:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.10
DISTRIB_CODENAME=karmic
DISTRIB_DESCRIPTION="Ubuntu 9.10"

 

========================

调试信息:

zhouhh@zhhofs:~$ ssh -v 192.168.12.16  
OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007  
debug1: Reading configuration data /etc/ssh/ssh_config  
debug1: Applying options for *  
debug1: Connecting to 192.168.12.16 [192.168.12.16] port 22.  
debug1: Connection established.  
debug1: identity file /home/zhouhh/.ssh/identity type -1  
debug1: identity file /home/zhouhh/.ssh/id_rsa type -1  
debug1: identity file /home/zhouhh/.ssh/id_dsa type -1  
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3  
debug1: match: OpenSSH_4.3 pat OpenSSH_4*  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2  
debug1: SSH2_MSG_KEXINIT sent  
debug1: SSH2_MSG_KEXINIT received  
debug1: kex: server->client aes128-cbc hmac-md5 none  
debug1: kex: client->server aes128-cbc 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  
debug1: Host '192.168.12.16' is known and matches the RSA host key.  
debug1: Found key in /home/zhouhh/.ssh/known_hosts:1  
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: An invalid name was supplied  
Cannot determine realm for numeric host address  
debug1: An invalid name was supplied  
Cannot determine realm for numeric host address  
debug1: An invalid name was supplied  
debug1: Next authentication method: publickey  
debug1: Trying private key: /home/zhouhh/.ssh/identity  
debug1: Trying private key: /home/zhouhh/.ssh/id_rsa  
debug1: Trying private key: /home/zhouhh/.ssh/id_dsa  
debug1: Next authentication method: password  
zhouhh@192.168.12.16's password:   
debug1: Authentication succeeded (password).  
debug1: channel 0: new [client-session]  
debug1: Entering interactive session.  
debug1: Sending environment.  
debug1: Sending env LANG = zh_CN.UTF-8  
Last login: Fri Dec 25 13:35:04 2009 from 192.168.11.146


可以看到如下的错误信息:

debug1: Next authentication method: gssapi-with-mic
debug1: An invalid name was supplied
Cannot determine realm for numeric host address

 

事实上,正是从gssapi-with-mic这一行开始,开始耗时间。

 

====================

失败的尝试:


有人说是在目标机器中修改/etc/ssh/sshd_conf文件

将UseDNS 的缺省值由yes修改为no,并重启sshd。我试了,对这种情况不管用。但不排除对别的延迟情况管用。

 

====================

有效的解决办法:

1. 修改本地机器的hosts文件,将目标机器的IP和域名加上去。或者让本机的DNS 服务器能解析目标地址。

vi /etc/hosts

 

192.168.12.16  ourdev

 

其格式是“目标机器IP 目标机器名称”这种方法促效。没有延迟就连上了。不过如果给每台都加一个域名解析,挺辛苦的。但在windows下用putty或secure-crt时可以采用这种方法。

 

2.修改本机的客户端配置文件ssh_conf,注意,不是sshd_conf

vi /etc/ssh/ssh_conf

 

找到

GSSAPIAuthentication yes

改为

GSSAPIAuthentication no

保存。

 

再连目标机器,速度就飞快了。

GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5 的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题。我看到有人给ubuntu提交了相关bug, 说要将GSSAPIAuthentication的缺省值设为no,不知为何,ubuntu9.10的缺省值还是yes。

 

修改完毕,此时的连接调试数据变为了:


zhouhh@zhhofs:~$ ssh -v 192.168.12.16  
OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007  
debug1: Reading configuration data /etc/ssh/ssh_config  
debug1: Applying options for *  
debug1: Connecting to 192.168.12.16 [192.168.12.16] port 22.  
debug1: Connection established.  
debug1: identity file /home/zhouhh/.ssh/identity type -1  
debug1: identity file /home/zhouhh/.ssh/id_rsa type -1  
debug1: identity file /home/zhouhh/.ssh/id_dsa type -1  
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3  
debug1: match: OpenSSH_4.3 pat OpenSSH_4*  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2  
debug1: SSH2_MSG_KEXINIT sent  
debug1: SSH2_MSG_KEXINIT received  
debug1: kex: server->client aes128-cbc hmac-md5 none  
debug1: kex: client->server aes128-cbc 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  
debug1: Host '192.168.12.16' is known and matches the RSA host key.  
debug1: Found key in /home/zhouhh/.ssh/known_hosts:1  
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: publickey  
debug1: Trying private key: /home/zhouhh/.ssh/identity  
debug1: Trying private key: /home/zhouhh/.ssh/id_rsa  
debug1: Trying private key: /home/zhouhh/.ssh/id_dsa  
debug1: Next authentication method: password  
zhouhh@192.168.12.16's password: 

参考:http://blog.youkuaiyun.com/ablo_zhou/article/details/5074887
SSH连接慢的原因有多种可能性。根据引用中的分析结果,可能的原因有以下几种: 1. DNS解析问题:可以在服务器的/etc/hosts文件中将本机的IP和主机名加入,或者在/etc/ssh/sshd_config文件中将UseDNS设置为no来解决。 2. resolv.conf配置问题:注释掉不使用的IP地址行可以解决。 3. nsswitch.conf配置问题:将/etc/nsswitch.conf文件中的hosts修改为hosts: files即可。 4. GSSAPIAuthentication配置问题:在/etc/ssh/sshd_config文件中将GSSAPIAuthentication设置为no可以解决。 其中,方法1和方法5的修改可能会解决问题。时,如果服务器无法连接外网,可以将/etc/resolv.conf中的nameserver全部注释掉来解决。 此外,根据引用中的信息,SSH连接时系统会依次尝试publickey、gssapi-keyex、gssapi-with-mic和password等认证方式。如果用户只使用password认证方式,可以在客户端的ssh_config文件中进行相应的修改来提高连接速度。 总之,在排查SSH连接慢的问题时,可以结合上述方法进行逐一排查和修改,以找到最适合的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [linux ssh连接慢](https://blog.youkuaiyun.com/weixin_33682790/article/details/85145970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【已解决】linux ssh 远程连接服务器,出现登陆慢、打字卡顿输入卡顿解决方案](https://blog.youkuaiyun.com/idiot5lie/article/details/114167486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值