良许Linux教程网 干货合集 SSH 开启二次身份验证具体方法

SSH 开启二次身份验证具体方法

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

img

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
1.2.3.4.5.6.

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
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.

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
1.2.3.4.5.6.7.8.9.10.11.12.13.

4配置 sudo 二次验证

# 保存并退出  
$ sudo vim /etc/pam.d/common-auth  
auth required pam_google_authenticator.so  
# 重启SSH服务  
$ sudo systemctl restart ssh.service  
1.2.3.4.5.

5手机安装 Google 身份验证器

1. 通过此工具扫描上一步生成的二维码图形,获取动态验证码  
2. 之后,就可以使用手机进行二次认证了,才能登陆服务器了  
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  
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
# 重启服务  
$ systemctl restart fail2ban
1.2.

7从二次验证锁定中恢复

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

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部