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

相關文章
相關標籤/搜索