为你的Linux启用2FA验证
2FA
2FA 的全称是 Multi-factor authentication,译作 多因素验证
也就是用户需要使用两种以上的验证方式来证明你是你
例如假设你需要访问一个资源,你除了需要输入账号和密码,你还需要另外提供你的指纹
你的指纹就是第三种认证方式,证明你就是你
环境介绍
这次使用的环境为
-
Ubuntu 18.04.2 LTS
-
使用用户密钥登录&禁用密码登录
给Linux设置一个2FA
Google Authenticator 设置
给Linux多加一个2FA,无疑是为了安全
为了启用2FA,我们需要安装一个Google Authenticator (libpam-google-authenticator)
Ubuntu/Debian 用户使用APT安装: sudo apt install libpam-google-authenticator
接下来通过命令 google-authenticator
建立一个密钥
接下来按y和回车即可
你会看到一个二维码,如果你的终端字体设置太大可能无法显示二维码的其他细节,需要手动调节一下字体大小即可
请使用2FA App来进行二维码扫描,我目前使用的是iOS平台的Step Two
就像这样
下面出现的所有问题建议全部都疯狂按y和回车
配置到SSH
接下来我们需要将它配置到SSH
使用编辑器,例如VIM或者nano来编辑/etc/ssh/sshd_config
文件
记住非root用户要使用sudo权限来执行
在sshd_config文件中找到:
-
ChallengeResponseAuthentication
-
UsePAM
这两个地方
然后改成yes
接下来运行命令来重新启动ssh
sudo systemctl restart ssh
接下来再去编辑另一个文件: /etc/pam.d/sshd
加上这行 auth required pam_google_authenticator.so
保存,重启ssh
重新登陆时应该会看到除了用户名和密码,还需要刚才的2FA验证
针对于使用密钥登录的用户
如果你是使用密钥登录,还需要做一些编辑
前往编辑 /etc/ssh/sshd_config
加上 AuthenticationMethods publickey,keyboard-interactive
接下来重启ssh
sudo systemctl restart ssh
然后再编辑 /etc/pam.d/sshd
这个文件
通过 # 注释掉 @include common-auth
需要重新配置验证码?
如果需要重新配置验证码,再次执行google-authenticator
命令即可,将新的二维码扫描进入2FA验证程序后就好了
取消掉2FA验证
如果需要取消掉2FA验证,请按照上面步骤反着来
可以注释掉教程中编辑的东西,重启ssh服务