8.10. sudo 的 GSSAPI 身份验证故障排除
如果您无法使用 IdM 的 Kerberos 票据对 sudo
服务进行身份验证,请使用以下场景来对您的配置进行故障排除。
先决条件
-
您已为
sudo
服务启用了 GSSAPI 身份验证。请参阅 在 IdM 客户端上为 sudo 启用 GSSAPI 身份验证。 -
您需要
root
权限来修改/etc/pam.d/
目录中的/etc/sssd/sssd.conf
文件和 PAM 文件。
步骤
如果您看到以下错误,则 Kerberos 服务可能无法为基于主机名的服务票据解析正确的域:
Server not found in Kerberos database
Server not found in Kerberos database
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这种情况下,在
/etc/krb5.conf
Kerberos 配置文件中的[domain_realm]
部分中直接添加主机名:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果看到以下错误,则您没有任何 Kerberos 凭证:
No Kerberos credentials available
No Kerberos credentials available
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这种情况下,使用
kinit
工具检索 Kerberos 凭证,或者使用 SSSD 进行验证:kinit idm-user@IDM.EXAMPLE.COM
[idm-user@idm-client ~]$ kinit idm-user@IDM.EXAMPLE.COM Password for idm-user@idm.example.com:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您在
/var/log/sssd/sssd_pam.log
日志文件中看到以下错误之一,则 Kerberos 凭证与当前登录的用户的用户名不匹配:User with UPN [<UPN>] was not found. UPN [<UPN>] does not match target user [<username>].
User with UPN [<UPN>] was not found. UPN [<UPN>] does not match target user [<username>].
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这种情况下,验证您是否使用 SSSD 进行了身份验证,或考虑禁用
/etc/sssd/sssd.conf
文件中的pam_gssapi_check_upn
选项:cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
[idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 若要进行额外的故障排除,您可以为
pam_sss_gss.so
PAM 模块启用调试输出。在 PAM 文件中的所有
pam_sss_gss.so
条目的末尾添加debug
选项,如/etc/pam.d/sudo
和/etc/pam.d/sudo-i
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 尝试使用
pam_sss_gss.so
模块进行身份验证,并查看控制台输出。在本例中,用户没有任何 Kerberos 凭据。Copy to Clipboard Copied! Toggle word wrap Toggle overflow