![使用智能卡进行 Kerberos 身份验证](https://linux22.com/image/191405/%E4%BD%BF%E7%94%A8%E6%99%BA%E8%83%BD%E5%8D%A1%E8%BF%9B%E8%A1%8C%20Kerberos%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我已经全新安装了 Fedora 34,并且正在尝试配置 kinit 以使用我的智能卡获取 kerberos 票证。我不想加入域(即 Windows AD)。
我已成功将其配置为允许我使用密码登录,但无法使其与我的智能卡一起使用。当我尝试时,它会提示我输入 PIN 码,然后提示我输入密码。
pkcs15-tool 列出了智能卡中的证书,它确实有多个证书。我不确定我的 krb5.conf 文件中是否选择了正确的文件(不太确定要查找什么)。
我已将 PEM 证书从域控制器复制到 /etc/ssl/certs/root,并从智能卡使用 CA。我还使用 certutil 将相同的证书复制到 /etc/pki/nssdb
这是我的 krb5.conf 文件
[libdefaults]
pkinit_anchors = DIR:/etc/ssl/certs/root/
pkinit_pool = DIR:/etc/ssl/certs/sub/
#pkinit_cert_match = || <EKU>msScLogin,<KU>digitalSignature
#pkinit_eku_checking = kpServerAuth
pkinit_kdc_hostname = DC.DOMAIN.COM
pkinit_identities = PKCS11:opensc-pkcs11.so:slotid=0:certid=01
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = DC.DOMAIN.COM
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
[realms]
DC.DOMAIN.COM = {
kdc = DC.DOMAIN.COM:88
admin_server = DC.DOMAIN.COM
default_domain = DC.DOMAIN.COM
}
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
.dc.domain.com = DC.DOMAIN.COM
我用来获取门票的命令
kinit -X 509_user_identity='PKCS11:opensc-pkcs11.so' [email protected]
如果我取出 -X 选项,我可以使用我的密码登录。我缺少什么?
编辑 - 还将证书添加到 /etc/pki/nssdb 编辑 2 - 我很确定我选择了正确的证书。我也在网上看到很多教程说要运行
modutil -add "OpenSC PKCS #11 Module" -libfile opensc-pkcs11.so -dbdir /etc/pki/nssdb
但是当我这样做时,我收到这个错误
ERROR: Failed to add module "OpenSC PKCS #11 Module". Probable cause : "Unknown PKCS #11 error.