在ssh上使用google二次验证

vps 使用密码登陆的话,可能会遭到暴力破解。使用 google 的验证器可以在手机上生成动态验证码,即便对方得到密码也无法登陆。这篇文章介绍如何在 centos7 上启用 google 二次验证。

安装依赖

首先要开启epel源,然后安装下列软件

yum install gcc make pam-devel libpng-devel libtool wget git qrencode

编译源码

git clone https://github.com/google/google-authenticator

cd google-authenticator/libpam

./bootstrap.#!/bin/sh

./configure

make

sudo make install

sudo cp .libs/pam_google_authenticator.so /lib64/security/

启用

编辑 /etc/pam.d/sshd,在第一行添加

auth required pam_google_authenticator.so

然后编辑 /etc/ssh/sshd_config,将ChallengeResponseAuthentication的值改为yes。

然后执行systemctl restart sshd重启 ssh。

配置

切换到对应的用户,执行 google-authenticator
,然后程序会问你一些问题,并给出一个二维码,秘钥,还有几个应急码以供手机丢失时使用。这里一路选是即可。

注意:每个应急码只能使用一次,一定要在用完前重新生成

二维码使用 google 身份验证器软件扫描即可。扫描成功后app界面就能显示你的验证码了。由于验证码是基于时间戳的,确保你的设备时间准确。验证器允许4分钟以内的时间误差。

完成上述步骤先不要急着退出,新开一个 ssh 测试一下能否登陆,以防出现问题导致无法登陆,我这里就因为没配置好而无法登陆了,一怒之下 rebuild 。

以后再登陆时,系统先会提示你输入验证码,然后才会让你输入密码。如果你手机不在身边,你也可以用应急码登陆。

你可能感兴趣的:(在ssh上使用google二次验证)