linux下ssh连接慢的原因调查及解决方案

项目中的一台阿里云,最近一段时间出现ssh的时候,连接非常慢,大概输入密码后要10-20秒左右才能连上,以下记录调查过程及解决办法

通过网上的一些查询,发现大都是因为设置dns,hosts或者通过关闭UseDNS=no GSSAPIAuthentication no的方式来解决,但我的问题和这些不同,首先我是通过ip连接的,不存在dns域名解析的问题,并且sshd_config文件中的这些设置项也都是no,因此自己通过调查,发现是以下原因引起的:



1.通过[-v]参数,查看ssh连接的具体过程

deMacBook-Pro:~ yyq$ ssh -v [email protected] -p xx
OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to x.x.x.x [x.x.x.x] port xx.
debug1: Connection established.
debug1: identity file /Users/yyq/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_rsa-cert type -1
debug1: identity file /Users/yyq/.ssh/id_dsa type 2
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/yyq/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to x.x.x.x:xx as ‘root‘
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:HictrRpAs7Yv495dDLNqHsFCNKXVACpX9FWUnNVenZU
debug1: Host ‘[x.x.x.x]:xx‘ is known and matches the ECDSA host key.
debug1: Found key in /Users/yyq/.ssh/known_hosts:38
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,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/yyq/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering DSA public key: /Users/yyq/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /Users/yyq/.ssh/id_ecdsa
debug1: Trying private key: /Users/yyq/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]‘s password:

首先观察在要求输入密码前有没有出现耗时的操作?
我的问题并没有,因此,继续输出密码:

[email protected]‘s password:
debug1: Authentication succeeded (password).
Authenticated to x.x.x.x ([x.x.x.x]:xx).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.

输入密码后,发现停在这里了,大概10-20秒后,就可以连接上;

通过日志可以发现,密码的验证没有损耗时间,已经正确验证通过Authentication succeeded (password)
哪么到底是什么原因导致的速度这么慢?

2.打开服务器的系统日志,查看

tail -f /var/log/auth.log
sshd[12642]: pam_systemd(sshd:session): Failed to create session: Connection timed out
dbus[617]: [system] Failed to activate service ‘org.freedesktop.login1‘: timed out
sshd[12642]: Received disconnect from x.x.x.x port 52856:11: disconnected by user
sshd[12642]: Disconnected from x.x.x.x port 52856
sshd[12642]: pam_unix(sshd:session): session closed for user root
sshd[12689]: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]
sshd[12689]: Accepted password for root from x.x.x.x port 52866 ssh2
sshd[12689]: pam_unix(sshd:session): session opened for user root by (uid=0)
sshd[12689]: pam_systemd(sshd:session): Failed to create session: Connection timed out
dbus[617]: [system] Failed to activate service ‘org.freedesktop.login1‘: timed out

从日志中可以看到[system] Failed to activate service ‘org.freedesktop.login1‘: timed out

的错误,查了下资料,大致意思如下:
dbus的服务重启后,systemd-logind服务没有重启导致,可以查看systemctl status systemd-logind的状态,解决方法就是重启该服务 systemctl restart systemd-logind
重启systemd-logind服务后,发现ssh可以秒连接了

时间: 2024-10-03 14:46:09

linux下ssh连接慢的原因调查及解决方案的相关文章

linux下ssh连接缓慢详解

摘自:https://blog.csdn.net/asd2479745295/article/details/83006379 linux下ssh连接缓慢详解原创皮的开心 最后发布于2018-10-11 09:13:37 阅读数 1824 收藏展开    最近发现公司新linux控制器使用ssh连接特别慢,大概要10秒钟左右,scp也是需要10秒左右,但是ping速度特别快.使用ssh -l IP -v 可以查看连接卡在,SSH2_MAG_SERVICE_ACCEPT received后,停顿了

Linux下ssh连接缓慢的处理方法

1)故障现象 a.ping ip,响应正常 b.telnet ip,响应正常 c.ssh ip,响应慢,但是等很长时间后,还是能正常连接 2)处理方法 方法1: 修改本地中的/etc/ssh/ssh_config,把参数改为GSSAPIAuthentication no 方法2: a.修改远程服务器端的/etc/ssh/sshd_config ,把参数改为GSSAPIAuthentication no b.修改远程服务器端的/etc/ssh/sshd_config ,把参数改为UseDNS no

linux下ssh端口的修改和登录

linux下ssh端口的修改和登录 首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,添加如下一行: Port 50000 然后保存退出 1.端口修改 执行/etc/init.d/sshd restart 这样SSH端口将同时工作在50000上. 2.防火墙修改 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用50000端口.添加如下一行 1 -A INPUT -m state --state N

Linux下SSH免密码登录

转自:http://haitao.iteye.com/blog/1744272 ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh 2. $ssh-keygen -t rsa  --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中. 3. $cp id_rsa.pub author

转载: 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.在

Linux下PHP连接MS SQLServer的办法

Linux下PHP连接MS SQLServer的办法分析问题 本来PHP脚本读写SQLServer是没有什么问题的,在Apache for windows和Windows IIS下可以工作的很好,一般可以通过ODBC或SQLServer Client连接,这都是Windows下面现成的.但是在Linux下面没有现成的ODBC和SQLServer Client,需要我们自己安装. 解决问题 一.相关软件 freetds-0.53.tgz 这个软件能够用Linux和Unix连接MS SQLServe

linux下ssh使用rsa验证登陆MACOX

由于项目的需求,我这边ubuntu下常常需要SSH访问另外一台MACOS. 每次输入密码有点烦,就想到RSA公钥和密钥验证的方法. 像所有教程上讲的一样,本机执行 [email protected]:~$ ssh-keygen -t rsa 将公钥拷贝到MACOS的/tmp下,并给其他人以读权限: [email protected]:~$ scp .ssh/id_rsa.pub [email protected]:/tmp [email protected]'s password: id_rsa

linux下ssh面密码登录设置

ssh 免密码登录 1. ssh-keygen -t rsa 三次回车 2. cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys 3. 验证 ssh localhost 如果不需要密码登录,表示设置成功 4. 面密码登录其他机器 ssh-copy-id -i hostname 注意:hostname必须在/etc/hosts文件绑定ip 这样本机就可以面密码登录目标机器 验证:ssh hostname 不需要密码登录 /etc/hosts文件只需要