手把手教你给 SSH 启用二次身份验证

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

87cd61b06162f55679001842b0c67397.png

每日言论

年轻时,我犯的最大错误,就是没有及时离职。我以为我必须向公司证明自己,然后再离开,但这其实没有任何意义。你不欠雇主任何东西,不必向雇主证明任何事情。他们对你丝毫没有忠诚度,对你做对或做错、是聪明还是愚蠢,毫不在意。

把时间用在你最终不会引以为豪的东西上面,是一件可怕的事情,浪费了你在地球上的短暂旅程。

-- Hacker News 读者

目前来说,二次验证(这里就不做过多解释了)是比较常用的安全手段,通过设置二次验证(谷歌或其他工具),就可以有效的避免账户密码的泄露导致的安全问题。因为,每次登陆前都需要获取一次性验证码,如果没有验证码的话就无法成功登陆。

1安装 PAM 模块

# 时间与客户端进行校验
$ ntpdate pool.ntp.org

# Ubuntu
$ sudo apt install -y libpam-google-authenticator

# CentOS7
$ yum install -y epel-release
$ yum install -y google-authenticator

2生成二次验证代码

# 生成验证码
# 哪个账号需要动态验证码,请切换到该账号下操作

# -t: 使用 TOTP 验证
# -f: 将配置保存到 ~/.google_authenticator 文件里面
# -d: 不允许重复使用以前使用的令牌
# -w 3: 使用令牌进行身份验证以进行时钟偏移
# -e 10: 生成 10 个紧急备用代码
# -r 3 -R 30: 限速 - 每 30 秒允许 3 次登录
$ google-authenticator -t -f -d -w 3 -e 10 -r 3 -R 30
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/vagrant@vagrant%3Fsecret%3DKZ7QPA11115XTQJQGBFWAIUJBY%26issuer%3Dvagrant
Your new secret key is: KZ7xxx7EI5123xxx123
Your verification code is 90xx71
Your emergency scratch codes are:
  1571xx03
  9968xx56
  2319xx89
  8321xx97
  9730xx15
  3424xx23
  5667xx03
  9408xx86
  7502xx41
  4677xx14

3配置 SSH 服务启用两步验证

# 启用两步验证
$ sudo vim /etc/pam.d/sshd
# @include common-auth  # 将禁用密码身份验证
auth required pam_google_authenticator.so  # 禁用密码验证

# 修改SSH配置文件
$ sudo vim /etc/ssh/sshd_config
Port 1090
ChallengeResponseAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
AuthenticationMethods publickey,keyboard-interactive

# 重启SSH服务
$ sudo systemctl restart ssh.service

77fb03a3fcdad1918761d2252fdc76e6.png

点击上方图片,打开小程序,『美团外卖』红包天天免费领!

4配置 sudo 二次验证

# 保存并退出
$ sudo vim /etc/pam.d/common-auth
auth required pam_google_authenticator.so

# 重启SSH服务
$ sudo systemctl restart ssh.service

5手机安装 Google 身份验证器

1. 通过此工具扫描上一步生成的二维码图形,获取动态验证码
2. 之后,就可以使用手机进行二次认证了,才能登陆服务器了

6使用 Fail2ban 去屏蔽多次尝试密码的 IP

# 安装软件
$ sudo apt install -y fail2ban
# 配置文件
$ vim /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s

[sshd]
enabled = true
filter  = sshd
port    = 1090
action = %(action_mwl)s
logpath = /var/log/secure
# 重启服务
$ systemctl restart fail2ban

7从二次验证锁定中恢复

# 禁用特定用户的二步验证(无法访问身份验证器应用程序)
$ sudo vim /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive
AuthenticationMethods publickey

# 重启SSH服务
$ sudo systemctl restart ssh.service

本文转载自:「 Escape 的博客 」,原文:https://tinyurl.com/juadtb7x ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

e9270e8310224d002bc455137996ce10.gif

dd2c80d122cc629058f8021afec4567b.png

你可能还喜欢

点击下方图片即可阅读

5a6003da608d8d7bd7bacbbb905c32e5.png

如何优雅的在 Linux 下开机自动重启脚本

0122ce4bebfa69075f28ab8c61037965.png
『美团|饿了么』外卖红包天天免费领,吃饭省钱杠杠滴!

4cb8f7be9322ada26916ebba6da220b4.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值