56.10. sudo 的 GSSAPI 身份验证故障排除
如果您无法使用 IdM 的 Kerberos 票据对 sudo 服务进行身份验证,请使用以下场景对您的配置进行故障排除。
先决条件
-
您已为
sudo服务启用了 GSSAPI 身份验证。请参阅 在 IdM 客户端上为 sudo 启用 GSSAPI 身份验证。 -
您需要
root权限来修改/etc/sssd/sssd.conf文件和/etc/pam.d/目录中的 PAM 文件。
步骤
如果您看到以下错误,Kerberos 服务可能无法为基于主机名的服务票据解析正确的域:
Server not found in Kerberos database
Server not found in Kerberos databaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这种情况下,将主机名直接添加到
/etc/krb5.confKerberos 配置文件中的[domain_realm]部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果看到以下错误,则您没有任何 Kerberos 凭证:
No Kerberos credentials available
No Kerberos credentials availableCopy 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选项:[idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = false
[idm-user@idm-client ~]$ cat /etc/sssd/sssd.conf ... pam_gssapi_check_upn = falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 若要进行额外的故障排除,您可以对
pam_sss_gss.soPAM 模块启用调试输出。在 PAM 文件(如
/etc/pam.d/sudo和/etc/pam.d/sudo-i)中所有pam_sss_gss.so条目的末尾添加debug选项: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