google 實現TOTP(基於時間認證)原理
1.用戶須要開啓Google Authenticator服務時,服務器隨機生成一個相似於
『DPI45HKISEXU6HG7』的密鑰,而且把這個密鑰保存在.google_authenticator中。
2.客戶端掃描二維碼,把密鑰『DPI45HKISEXU6HG7』保存在客戶端,同
時客戶端也能夠手動輸入密鑰,生成驗證碼html
安裝(centos7)
1.install
a.增長epel repo 算法
# yum install google-authenticator b.修改ssh配置,vim /etc/ssh/sshd_config 修改以下 #ChallengeResponseAuthentication yes ###容許交互 #AuthenticationMethods publickey,password publickey,keyboard-interactive #增長認證方法,默認只有密碼認證才須要輸入驗證碼,增長以後,有公鑰也須要輸入驗證碼 #重啓服務 systemctl restart sshd c.在認證文件/etc/pam.d/sshd增長以下內容 #auth required pam_google_authenticator.so nullok #auth substack password-auth 放於先後取決於先輸入驗證碼仍是先輸入密碼 d.生成認證文件 #google-authenticator -t -d -f -r 3 -R 30 -W #生成文件在當前家目錄的.google_authenticato,同時也會彈出生成的條形碼及5次緊急驗證碼,5次驗證碼使用一次少一次 #用cat .google_authenticator 打開文件後,其實內容很簡單,第一行是認證生成的密鑰,包括認證方法,時間等參數 #也能夠一步一步生成,參考文檔:https://shenyu.me/2016/09/05/centos-google-authenticator.html
#指定用戶去讀取認證文件及認證文件的路徑vim