背景:雙因子認證(簡稱:2FA,以下簡稱2FA),在這里其為SSH的第二重認證。2FA指的是密碼以及實物(信用卡、SMS手機、令牌或指紋等生物標志)兩種條件對用戶進行認證的方法。通過兩種不同的認證程序,可以降低密碼泄露帶來的風險,大大提高了linux系統的安全!
一、配置前准備
1、 准備一台運行着的OpenSSH服務的linux終端。
2、 安卓手機一台。
二、linux上安裝Google身份驗證器
1、 ubuntu上安裝Google身份認證器:
$ sudo apt-get install libpam-google-authenticator -y
2、 CentOS上安裝Google身份認證器
#安裝EPEL軟件庫 $ sudo yum install epel-release -y #安裝google-authenticator $ sudo yum install -y google-authenticator
3、 linux主機上運行Google身份驗證器
$ google-authenticator
Google身份驗證器會問一些問題,一直答 Y即可。圖中的應急備用驗證碼(圖中顯示為: emergency scratch codes)可以在你丟失了綁定的安卓設備的情況下恢復訪問。所以,一定要將應急備用驗證碼保存好!
三、為SSH服務器用Google身份驗證器
1、 修改PAM配置文件
$ sudo vim /etc/pam.d/sshd # Disallow non-root logins when /etc/nologin exists. account required pam_nologin.so # 添加這一行 auth required pam_google_authenticator.so
2、 在SSH配置文件里啟用 ChallengeResponseAuthentication
$ sudo vim /etc/ssh/sshd_config ChallengeResponseAuthentication yes
3、 重啟SSH服務
$ sudo service ssh restart
四、在安卓設備上運行Google身份驗證器
1、 在安卓應用市場搜索並安裝Google身份驗證器。
2、 在配置菜單輸入剛剛的配置信息
3、 添加完成后會得到6位數動態碼
到此,雙因子認證配置完成!