SSSD + 加密 /home,登入時不再自動掛載

SSSD + 加密 /home,登入時不再自動掛載

我已經把幾個盒子換成固態硬碟,因此它們現在針對中央 LDAP 伺服器進行身份驗證,並在我離線時快取憑證。這工作正常,並且 Ubuntu 軟體包安裝得很好。

但現在當我登入時,我的主目錄不再自動解密/安裝。如果我退出 GDM 並在控制台登錄,則會出現以下錯誤:

keyctl_seach Required key not avaliable

如果我運行建議的命令(ecryptfs-掛載-私有)並給出我的密碼,我的主目錄已解鎖。

我試圖了解登入過程如何改變,以便我的密碼不再自動解鎖加密金鑰。我認為這是一個 PAM 問題,所以我已經包括了我的/etc/pam.d/common-auth文件如下。

我認為密碼正在傳遞給 SSSD,然後跳過解鎖密鑰通常執行的任何步驟。有人可以解釋一下通常是如何完成的嗎?

auth    [success=3 default=ignore]  pam_sss.so
auth    [success=2 default=ignore]  pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]  pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass

auth    requisite           pam_deny.so
auth    required            pam_permit.so
auth    optional            pam_ecryptfs.so unwrap

更新1:

當使用者登入時 auth.log 報告此錯誤:

login[14202]: NULL passphrase; aborting

谷歌僅在 pam_ecryptfs.so 的源代碼中發現此錯誤,並且當收到的 PAM_AUTHTOK 為 NULL 時觸發:

rc = pam_get_item(pamh, PAM_AUTHTOK, (const void **)&passphrase);
[...]
if (passphrase == NULL) {
    [...]
    syslog(LOG_ERR, "NULL passphrase; aborting\n");
    [...]
}

因此,至少 pam_ecryptfs.so 被呼叫(即,並不是因為 SSSD 就位而被跳過)。但是為什麼它會得到 NULL 密碼呢?


更新2:

現在我已經了解了有關 PAM 的更多信息,我已經用我的副本更新了該帖子通用認證文件,因為這是登入時使用的文件(不是普通密碼

答案1

事實證明答案就在文檔中!我只需要先找出問題所在,然後再返回檢查設定的每個元素:

http://manpages.ubuntu.com/manpages/natty/man8/pam_sss.8.html

新增選項“前向傳遞" to pam_sss.so 告訴 SSSD 模組將輸入的密碼放在堆疊上,以便其他模組(即 pam_ecryptfs.so)可以使用該資訊。

所以我的 ecryptfs + SSSD 啟用的 /etc/pam.d/common-auth 檔案如下所示:

auth    [success=3 default=ignore]  pam_sss.so forward_pass
auth    [success=2 default=ignore]  pam_unix.so nullok_secure try_first_pass
auth    [success=1 default=ignore]  pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass

auth    requisite   pam_deny.so
auth    required    pam_permit.so
auth    optional    pam_ecryptfs.so unwrap

筆記:pam_ecryptfs.so 行末尾有“debug”一詞也破壞了一切!

今天我確實學到了很多關於 PAM、ecryptfs 和 gnome-keyring 的知識!希望這對將來的人們有所幫助 - 我甚至可以提交功能請求以將其添加為預設值。

相關內容