限制使用者使用金鑰進行 SSH 身份驗證

限制使用者使用金鑰進行 SSH 身份驗證

是否有可能將基於密碼的身份驗證限制為 Solaris 10 中的特定使用者?

特定使用者不應使用密碼登入。相反,他應該只能使用密鑰登入。我計劃根據來自另一個系統的密碼和金鑰來限制用戶透過 SSH 登錄,以便特定用戶可以使用密碼登錄,而某種類型的用戶只能使用金鑰登入。

答案1

在 Solaris 10 中,只要您使用 /etc/nsswitch.conf 中密碼資料庫的「檔案」來源,就可以透過確保帳戶在 /etc/nsswitch.conf 中沒有有效密碼來防止使用者使用密碼登入。文件。由於執行此操作的機制會將文字文字「NP」插入密碼字段,因此稱為「NPing 帳戶」。

對特定帳戶執行此操作的命令是passwd -N <account>。為此,請始終使用 passwd 命令,而不是直接編輯影子檔案。

請注意不要鎖定帳戶 ( passwd -l),因為這也會阻止使用金鑰透過 ssh 登入。

如果您稍後決定使用某種形式的雙重認證,例如 SecurID 或其他形式的 RADIUS 驗證(除了 SSH PKI 之外),您可以透過 PAM 來實現。在這種情況下,如果與 /etc/passwd 匹配失敗,則輸入的密碼應傳遞給下一個提供程序,就像在本例中一樣。

答案2

如果我的回答可能無關緊要,請原諒,但你的問題對我來說有點不清楚。我會嘗試!

從 OpenSSH 5.x 及更高版本開始,您可以配對某些使用者(匹配用戶)和組(比賽組)在設定檔中。我只是將這樣的東西加到我的sshd_配置:

符合使用者 rajkumar
密碼驗證 否
ChallengeResponseAuthentication 否
PubkeyAuthentication 是

您可能可以使用適當的可插拔身份驗證模組以及在 Solaris 中實現的 PAM 來實現相同的結果。

祝你好運!

相關內容