linux ssh连接慢

分析结果,主要原因为:DNS的解析IP导致,可分别使用以下几种分析处理方式
1、在server上/etc/hosts文件中把你本机的ip和hostname加入 
2、在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no 
3、注释掉server上/etc/resolv.conf中不使用的IP所有行 
4、修改server上/etc/nsswitch.conf中hosts为hosts:files
5、authentication gssapi-with-mic也有可能出现问题,在server上
/etc/ssh/sshd_config文件中修改 GSSAPIAuthentication no
service sshd restart。/etc/init.d/sshd restart重启sshd进程使配置生效。
如之前为服务器配置了双网卡,使的在/etc/resolv.conf文件中多了一行目前不使用的IP地址。注释或者删除该行即可。大多数情况修改1和5两项即可解决问题
使用ssh -v p查看是在什么地方慢的,结果是问题5,google后有人提议把$HOME/.ssh目录权限修改为700,该目录下的文件权限也修改为只有本人可以访问,但问题依然存在。按照5中方法修改后问题解决。
另外,服务器无法连接外网,把/etc/resolv.conf中的nameserver全部注释掉,问题也能解决。使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作。

从日志中可以看到[system] Failed to activate service ‘org.freedesktop.login1’: timed out
的错误,查了下资料,大致意思如下:
dbus的服务重启后,systemd-logind服务没有重启导致,可以查看systemctl status systemd-logind的状态,解决方法就是重启该服务

systemctl restart systemd-logind
重启systemd-logind服务后,发现ssh可以秒连接了


实际操作
vi /etc/ssh/sshd_config

关闭 SSH 的 DNS 反解析,添加下面一行:
UseDNS no
GSSAPIAuthentication no

/etc/nsswitch.conf ,里面有如下一行
hosts: files dns
在server上/etc/hosts文件中把你本机的ip和hostname加入

重启sshd进程使配置生效
/etc/init.d/sshd restart
service sshd restart

MaxAuthTries
指定每个连接最大允许的认证次数。默认值是 6 。
如果失败认证的次数超过这个数值的一半,连接将被强制断开,且会生成额外的失败日志消息。
MaxStartups
最大允许保持多少个未认证的连接。默认值是 10 。
到达限制后,将不再接受新连接,除非先前的连接认证成功或超出 LoginGraceTime 的限制。
MaxStartups 默认设置是 10:30:60,意思是从第10个连接开始以30%的概率(递增)拒绝新连接,直到连接数达到60为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值