前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个少有人知的导致 SSH 登录缓慢的原因

一个少有人知的导致 SSH 登录缓慢的原因

原创
作者头像
horsley
修改2019-03-18 10:41:20
1.2K0
修改2019-03-18 10:41:20
举报

常规的 SSH 登录慢,你去网上一找,大家都会让你关两个设置

代码语言:txt
复制
#取消ssh的反向dns解析
UseDNS no

#关闭ssh的gssapi认证
GSSAPIAuthentication no

在腾讯云 centos7 镜像创建的示例上,我观察到了这样一个现象:

  1. 隔一段时间不登录后,第一次登录非常慢,部分 SSH 客户端可以看到状态已经是连接上,但是终端延迟很久才打开
  2. 立即再次登录快如狗

我注意到登录完成之后,终端有一个输出信息如下

代码语言:txt
复制
There were 11 failed login attempts since the last successful login.

这是 PAM 的 last_log 模块的输出,这个数据统计的是上次成功登录之后,有多少次失败登录的尝试。这些失败尝试主要来源于网上各种扫描器,统计数据来源于文件 /var/log/btmp,查了一下这个文件有36M 那么大,处理起来应该说是比较费劲的,隔久了之后登录这个统计数字高达好几万。

那么能否删掉或者清空这个日志呢?可以其实是可以的,只是失败登录的统计数据可能就不对了,不过讲真大部分人可能并不是太在意这个登录失败的统计数据。通过查看/etc/logrotate.conf我们可以发现其实 btmp 是有截断的设置的,周期是每个月一次

代码语言:txt
复制
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

这个周期略微有点长了,我这里半个月已经积攒了36M 的日志了,找到原因之后我们对症下药,有以下几个处理方法:

  1. 缩短 logrotate 间隔,统计数据相应的会变少,耗时可以降低
  2. 配置 fail2ban,推荐使用,可以缓和同一 IP 上扫描器的恶意扫描
  3. 不看失败登录统计的,直接关了,/etc/pam.d/postlogin中去除 showfailed参数

最后提一嘴,fail2ban,禁止密码登录这些都是推荐使用的,有多少次失败登录这个计数重要性倒是一般。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档