SSH使用手机验证登录

简单来讲,就是用Google的身份验证器上验证码登录SSH(基于时间,验证必须保证手机和服务器上时间一致)git

本人的实验环境为CentOS7,其余Linux发行版本均可以,大同小异github

环境准备(配置阿里云的YUM源)bootstrap

[root@mybolg ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@mybolg ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@mybolg ~]# yum makecache

安装GitHub上Google开源项目 google-authenticator-libpam服务器

## 安装依赖包
[root@mybolg ~]# yum install git make automake gcc libtool pam-devel -y
## 建立并进入目录
[root@mybolg ~]# mkdir -p /soft/code && cd /soft/code
## 下载 google-authenticator-libpam 项目
[root@mybolg code]# git clone https://github.com/google/google-authenticator-libpam.git
## 进入目录
[root@mybolg code]# cd google-authenticator-libpam/
## 运行脚本生成 configure 配置文件
[root@mybolg google-authenticator-libpam]# ./bootstrap.sh
## 安装 google-authenticator-libpam
[root@mybolg google-authenticator-libpam]# ./configure && make && make install

配置项目ssh

## 创建软连接
[root@mybolg ~]# ln -s /usr/local/lib/security/pam_google_authenticator.so /lib64/security/pam_google_authenticator.so
## SSH上打开质疑-应答模式
[root@mybolg ~]# sed -i 's#ChallengeResponseAuthentication no#ChallengeResponseAuthentication yes#g' /etc/ssh/sshd_config
## PAM指定SSH为 pam_google_authenticator 验证登录
[root@mybolg ~]# sed -i '1s#^#auth sufficient pam_google_authenticator.so\n#' /etc/pam.d/sshd
## 重启sshd服务
[root@mybolg ~]# systemctl restart sshd

手机下载身份验证器(百度搜索)curl

生成二维码
在服务器上输入 google-authenticator 会问你是否生成验证信息,选y就会生成二维码(以下图)google

用身份验证器上的扫描条形码来扫描二维码(部分安卓不支持扫描,能够用二维码下面的秘钥,帐号随便)
阿里云

完成验证
ssh登录先输入验证码 在输入密码url

相关文章
相关标签/搜索