10.2. 使用 SSSD 对智能卡验证进行故障排除
按照以下流程,使用智能卡对使用 SSSD 的身份验证进行故障排除。
先决条件
- 已安装并配置了用于智能卡的 IdM 服务器和客户端。
-
已安装
sssd-tools
软件包。 - 您可以检测智能卡读取器并显示智能卡的内容。请参阅在系统上测试智能卡访问。
步骤
使用
su
验证您可以使用智能卡进行验证:$ su - idmuser1 -c ‘su - idmuser1 -c whoami’ PIN for MyEID (sctest): idmuser1
如果没有提示输入智能卡 PIN,且返回一个密码提示或者返回授权错误,请检查 SSSD 日志。有关登录 SSSD 的信息,请参阅 在 IdM 中对具有 SSSD 的身份验证进行故障排除。以下是身份验证失败的示例:
$ su - idmuser1 -c ‘su - idmuser1 -c whoami’ PIN for MyEID (sctest): su: Authentication failure
如果 SSSD 日志指明了
krb5_child
的问题,类似于以下内容,则可能对您的 CA 证书有问题。要排除与证书相关的问题,请参阅 验证 IdM Kerberos KDC 可以使用 Pkinit 以及 CA 证书正确位于。[Pre-authentication failed: Failed to verify own certificate (depth 0): unable to get local issuer certificate: could not load the shared library]
如果 SSSD 日志表示来自
p11_child
或krb5_child
的超时,您可能需要提高 SSSD 超时,并尝试使用智能卡再次进行身份验证。有关如何增加超时的详情,请参阅增加 SSSD 超时。验证您的 GDM 智能卡验证配置是否正确。应返回 PAM 验证的成功消息,如下所示:
# sssctl user-checks -s gdm-smartcard "idmuser1" -a auth user: idmuser1 action: auth service: gdm-smartcard SSSD nss user lookup result: - user name: idmuser1 - user id: 603200210 - group id: 603200210 - gecos: idm user1 - home directory: /home/idmuser1 - shell: /bin/sh SSSD InfoPipe user lookup result: - name: idmuser1 - uidNumber: 603200210 - gidNumber: 603200210 - gecos: idm user1 - homeDirectory: /home/idmuser1 - loginShell: /bin/sh testing pam_authenticate PIN for MyEID (sctest) pam_authenticate for user [idmuser1]: Success PAM Environment: - PKCS11_LOGIN_TOKEN_NAME=MyEID (sctest) - KRB5CCNAME=KCM:
如果身份验证错误(类似于以下内容)被返回,请检查 SSSD 日志尝试并确定导致这个问题的原因。有关登录 SSSD 的信息,请参阅 对 IdM 中使用 SSSD 的身份验证进行故障排除 。
pam_authenticate for user [idmuser1]: Authentication failure PAM Environment: - no env -
如果 PAM 验证仍失败,请清除您的缓存并再次运行命令。
# sssctl cache-remove SSSD must not be running. Stop SSSD now? (yes/no) [yes] yes Creating backup of local data… Removing cache files… SSSD needs to be running. Start SSSD now? (yes/no) [yes] yes