之前在設定VPN登入雙認證的時候用過Google authenticator,相較上一次,這次的需求相對比較單純,要在一台Linux主機上建立登入密碼的雙認證工具,使用者要登入該主機時,必須輸入本機密碼,然後再輸入OTP才能登入,會有此需求是因為原本的雙認證方式得用本機密碼+YubiKey,雖然YubiKey是很安全的東西,它是實體金鑰,對一台電腦來說,很難有人可以複製別人的一把實體金鑰,但缺點就是非常不方便、金鑰設定很麻煩,且除了會有耗損而發生感應不良的情況,一把小鑰匙弄掉了也很難找(之前就有離職同事搞丟讓我們都找不到),我自己使用的MacBook又發生讀取金鑰後無法出現輸入密碼的視窗,甚至公司AD和防毒軟體都有鎖定USB讀取的政策,每次還要特地為能夠讀取YubiKey而且查詢智慧卡的硬體識別碼,種種因素導致我們必須找到安全又迅速的雙認證方式,於是Google authenticator又再次成為首選。
一.安裝Google authenticator套件
$ sudo apt install libpam-google-authenticator
二.變更pam設定值
$ sudo vim /etc/pam.d/sshd
在最下方加入
auth required pam_google_authenticator.so
三.變更ssh設定值
$ sudo vim /etc/ssh/sshd_config
將ChallengeResponseAuthentication值修改為yes,UsePAM也確定一下是不是 yes
#ChallengeResponseAuthentication no
ChallengeResponseAuthentication yes
設定完後要先重啟sshd服務
$ service sshd restart
四.輸入指令產生雙認證金鑰
$ google-authenticator
![]() |
產生QR Code後,後面的選項要按「y」 |
![]() |
每個選項都按「y」 |
![]() |
登出主機再登入後,就可以再登入時出現主機密碼和OTP的雙認證要求 |
沒有留言:
張貼留言