Ssh

僅針對外部地址的兩因素 SSH 身份驗證

  • August 4, 2021

我有一個 Ubuntu 伺服器,它有一個私有的、內部的、IP 和一個面向公眾的 IP。我想在公共端為 SSH 設置兩因素身份驗證。這可能嗎?我計劃使用 Google Authenticator,但也對其他想法持開放態度。

是的,您可以使用pam_access.so. 此配方取自Google Authenticator 的 wiki

一個有用的 PAM 方法是允許在連接源自某些來源時跳過雙重身份驗證。PAM 已經支持這一點。例如,pam_access 模組可用於根據本地子網檢查源:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

在這種情況下,access-local.conf 看起來像:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

因此,來自 10.0.0.0/24 的登錄嘗試將不需要雙重身份驗證。

引用自:https://serverfault.com/questions/518802