溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于Pam的Google雙重驗(yàn)證實(shí)現(xiàn)

發(fā)布時(shí)間:2020-06-27 12:55:49 來源:網(wǎng)絡(luò) 閱讀:478 作者:My_good_science 欄目:開發(fā)技術(shù)

1、下載Google Authenticator源碼

wget https://github.com/google/google-authenticator/tree/master/libpam

打開https://github.com/google/google-authenticator/blob/master/libpam/pam_google_authenticator.c,查找到pam_get_item(pamh, PAM_AUTHTOK, &password),修改PAM_AUTHTOK為PAM_AUTHTOK_TYPE

Build & install

./bootstrap.sh
./configure
make
sudo make install

拷貝pam_google_authenticator.so到/lib64/security下

Running

執(zhí)行./google-authenticator

Your new secret key is: A3FY5V6TCAEUN4FX

Your verification code is 680297

Your emergency scratch codes are:

  75304045

  77554864

  18069864

  99313356

  32694105


2、下載Google身份驗(yàn)證器

通過手機(jī),ipad等下載,打開身份驗(yàn)證器,在google身份驗(yàn)證器中輸入用戶名(一般使用郵件),秘鑰則輸入./google-authenticator結(jié)果中的secret key,選擇基于時(shí)間候保存,就可以看到每30s生成一個(gè)6位數(shù)的隨機(jī)數(shù)。


3、下載JPam

官網(wǎng):http://jpam.sourceforge.net/

wget http://sourceforge.net/projects/jpam/files/jpam/jpam-1.1/JPam-Linux_amd64-1.1.tgz/download


按照J(rèn)Pam安裝說明,

a> 首先在/etc/pam.d下,創(chuàng)建一個(gè)google-auth文件,在文件中添加如下內(nèi)容:

   auth   required   /lib64/security/pam_google_authenticator.so use_first_pass

   account  required  /lib64/security/pam_unix_acct.so

b> 寫一個(gè)JPamTest.java程序

    String user1Name = "root";
    String user1Credentials = "password";
    Pam pam = new Pam("google-auth");    //如果不輸入名稱,則默認(rèn)使用net-sf-jpam
    boolean authenticated = pam.authenticateSuccessful(user1Name, user1Credentials));
   
JPamTest.java依賴JPam1.1.jar,libjpam.so(此動(dòng)態(tài)庫有問題,需要按照下面的步驟重新編譯)


下載源碼,并重新編譯libpam.so

wget https://github.com/gregrluck/jpam

打開jpam/src/main/c/Pam.c,查找到pam_set_item(pamh, PAM_AUTHTOK, password),修改PAM_AUTHTOK為PAM_AUTHTOK_TYPE

修改后,執(zhí)行make,重新編譯libpam.so


在linux下編譯并執(zhí)行JPamTest.java,其中username為linux root用戶名,密碼為google身份驗(yàn)證器中的動(dòng)態(tài)密碼,如果驗(yàn)證成功,則authenticated的狀態(tài)值為True.


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI