security/pam_google_authenticator: Two Factor Authentication PAM Module

security/pam_google_authenticator 是 Google 推出的 Open Source PAM Module,提供 RFC 4226 (HOTP: An HMAC-Based One-Time Password Algorithm) 的 OTP 功能。

只要使用 Android 手機(未來會支援iOS裝置),安裝 Google  提供的 App,開啟並設定 pam_google_authenticator,之後的 ssh 連線就可以使用 OTP 登入。

Linux 上的安裝方法可以看 @gasol 寫的替主機上第二道鎖 – Google Authenticator,這裡介紹的是 FreeBSD 上的安裝方法:

  1. 先安裝 security/pam_google_authenticator
  2. 執行 google-authenticator ,設定 secret key。螢幕上會出現一個 QR Code,用手機 App 掃描之後就會把 secret key 存到手機內。接著按照螢幕上指示把 secret key 存到 ~/.google_authenticator 裡。記得要 chmod 600。
  3. 設定 /etc/pam.d/sshd,在 auth pam_unix 下面增加一行:

auth required /usr/local/lib/pam_google_authenticator.so

這樣就生效了。要注意的是,這不會影響使用 Public/Private Key Pair 登入的使用者。另外,PAM設定完成之後,如果沒有設定 secret key 的使用者,就不能用帳號密碼登入了。

測試前記得請留下一個連線的 terminal,避免設錯導致人得跑到 console 前去處理。