#!/bin/bash
#
#********************************************************************
#Author:zhangzhuo
#QQ: 1191400158
#Date: 2021-01-16
#FileName:pam_google_anthenticator.sh
#URL: [https://www.zhangzhuo.ltd](https://www.zhangzhuo.ltd)
#Description:The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************
. /etc/init.d/functions
#安装google-authenticator
rpm -q google-authenticator &>/dev/null || { yum install -y google-authenticator &>/dev/null;action "google-authenticator模块安装完成"; }
rpm -q expect &>/dev/null || { yum install -y expect &>/dev/null; action "必要软件安装完成"; }
#设置
Version=`grep -Eo "[0-9].[0-9]" /etc/redhat-release | tr '.' '%' | tr '\n' % |cut -d% -f 1`
if [ $Version -eq 8 ];then
echo -e 'y\n-1\ny\ny\ny\ny\n' | google-authenticator &>goog.log
elif [ $Version -eq 7 ];then
expect <<EOF &>goog.log
set timeout 20
spawn google-authenticator
expect {
"y/n" { send "y\n";exp_continue }
}
expect eof
EOF
fi
[ ! -f goog.log ] && { exit;echo -e "执行错误"; }
grep pam_google_authenticator.so /etc/pam.d/sshd && action &>/dev/null ||sed -i.bak '1aauth required pam_google_authenticator.so' /etc/pam.d/sshd && action "模块在sshd服务中添加"
sed -i.bak 's/^ChallengeResponseAuthentication.*/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config && action "sshd配置文件已修改"
systemctl restart sshd.service && action "sshd重新启动完成"
action "google-authenticator执行过程放在goog.log文件中"
echo -e "\033[1;31m请登录这个网站扫描二维码在APP中添加主机\033[0m"
grep -E "https:\/\/www.*" goog.log
echo -e "\033[1;31m请牢记goog.log文件夹下Your emergency scratch codes are:下面的序列号,以防手机丢失时使用\033[0m"
注意:
- 实测可以在 Centos7 和 Centos8 使用需先连接互联网安装 epel 源,然后直接执行
- 在那个目录执行会在目录下生成一个 goog.log 文件里面是生成的信息
- 执行完毕后在 root 家目录下有一个 google_authenticator 里面的那些数字为如果手机丢失可以进行一次验证使用一次后消失,可以在里面自行添加
- 手机 APP 下载地址
- 如果是 Centos8 版本 goog.log 信息中是不会有二维码的需要科学上网打开网站进行扫描添加主机
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于