需要 LDAP 驗證 *和* ssh 驗證

需要 LDAP 驗證 *和* ssh 驗證

我想啟用以下功能:AWS 中的 Linux ec2 實例,對目前沒有主目錄的使用者執行 LDAP 驗證。我在 AWS 中有一個可用的 openLDAP 來完成該任務

LDAP 經過驗證後:

  • 將建立使用者的主目錄
  • 使用者的公共 ssh 金鑰是從sshPublicKeyLDAP 中的屬性中檢索的,並且只有在本地 sshPrivateKey 匹配時才能登入

我知道如何進行 LDAP 身份驗證或者透過檢索公鑰,ldapsearch但我想兩者都做。

我試圖緩解的情況是當員工離開公司時:我可以在 openLDAP 中停用他們的帳戶,即使他們的公鑰存在於電腦上,他們也將無法使用它們,因為他們也會失敗 ldap 驗證。

我在 StackExchanges 上搜尋過,但認為沒有找到我要找的東西。我最接近的是

https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap

https://serverfault.com/questions/579341/combination-of-ssh-key-auth-and-two-factor-authentication

答案1

首先,授權金鑰不應儲存在使用者的主目錄中,原因有二:

  1. 不應允許使用者自行新增隨機授權金鑰。
  2. 首次登入時,如果主目錄尚不存在,則授權金鑰應該已存在。

你應該設置授權密鑰文件像這樣讓sshd從鎖定的目錄中讀取授權金鑰,您可以透過幫助程式同步腳本放置金鑰:

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

它的一個變體是使用授權密鑰命令觸發授權金鑰的某些動態檢索。請記住,當您必須登入時,網路可能會關閉或系統無法存取。

如果員工離開,您也可以刪除授權金鑰。

如果您仍然想強制使用基於金鑰和密碼的身份驗證,您可以設定認證方法像這樣:

AuthenticationMethods publickey,password

請注意用作分隔符號的逗號而不是空格。

(如果您不想自己處理所有細節,您可以設定現成的解決方案,例如自由IPA固態硬碟作為 NSS/PAM 客戶端或我的Æ-DIR埃霍斯特用作 NSS/PAM 客戶端。

相關內容