我已经将一些盒子切换到SSSD,因此它们现在针对中央 LDAP 服务器进行身份验证,并在我离线时缓存凭据。这工作正常,并且 Ubuntu 软件包安装正常。
但是现在当我登录时,我的主目录不再自动解密/挂载。如果我退出 GDM 并在控制台登录,则会出现以下错误:
keyctl_seach Required key not avaliable
Run Code Online (Sandbox Code Playgroud)
如果我运行建议的命令 ( ecryptfs-mount-private ) 并提供我的密码,我的主目录就可以正常解锁。
我试图了解登录过程是如何变化的,以至于我的密码不再自动解锁加密密钥。我认为这是 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
Run Code Online (Sandbox Code Playgroud)
更新1:
auth.log 在用户登录时报告此错误:
login[14202]: NULL passphrase; aborting
Run Code Online (Sandbox Code Playgroud)
google 只在 pam_ecryptfs.so 的源中出现了这个错误,并且在收到的 PAM_AUTHTOK 为 NULL 时触发:
rc = pam_get_item(pamh, PAM_AUTHTOK, (const void **)&passphrase);
[...]
if (passphrase …Run Code Online (Sandbox Code Playgroud)