
我已經把幾個盒子換成固態硬碟,因此它們現在針對中央 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 的知識!希望這對將來的人們有所幫助 - 我甚至可以提交功能請求以將其添加為預設值。