故障排除¶
在这里,你会发现一个常见的问题集合。
Nitrokey在Linux上未被检测到¶
如果没有检测到硝基钥匙,请按以下步骤操作。
把这个文件`41-nitrokey.rules <https://www.nitrokey.com/sites/default/files/41-nitrokey.rules>`__复制到``/etc/udev/rules.d/``。
通过``sudo service udev restart`` 或``udevadm control --reload-rules && udevadm trigger``(如果使用的是 Fedora)重启 udev。
无法在 Windows 上安装硝基读卡器驱动程序¶
在 Windows 系统中,通用智能卡读写器驱动程序的初始化失败。报告的设备状态为``This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)``。
Windows 有两种通用的智能卡读写器驱动程序(WUDF 和 UMDF2)。默认情况下,Windows 使用 UMDF2,但 UMDF2 无法初始化,因此无法为 ®硝基加载。
为确保驱动程序初始化成功,请为设备初始化添加重试功能。在注册表中添加以下注册表键值。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers
RetryDeviceInitialize
New-ItemProperty -Path 'HKLM:\Software\Microsoft\Cryptography\Calais\Readers' -Name 'RetryDeviceInitialize' -PropertyType 'DWord' -Value 1
备注
注册表密钥适用于 Windows 10(1903 (19H1) 及更高版本)和 Windows 11。
如果智能卡阅读器之前已经安装,但初始化失败,则可能需要从注册表中删除。在注册表中删除以下注册表路径。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers\Nitrokey CCID/ICCD Interface 0
如果智能卡读卡器安装过多次,可能会有多个路径,路径末尾的数字会递增。
Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Cryptography\Calais\Readers -Include 'Nitrokey CCID/ICCD Interface [0-9]*' -Recurse -Depth 1 | Remove-Item
重启后,硝基被识别为*Microsoft Usbccid Smartcard Reader (WUDF)* 。
谷歌和微软服务¶
目前,似乎有一个错误,我们希望能尽快修复,它影响了Nitrokey 3与一些谷歌和微软服务的FIDO2的工作。
超时错误¶
系统在识别Nitrokey时有一个错误,在连接成功之前会出现超时。
NFC不工作¶
请确保FIDO2工作正常。否则NFC也不会工作。
Also check if you are using the right spot on your smartphone.
Nitrokey的背面必须靠着智能手机。对于USB-A版本,稍微抬起带有USB接口的一侧,以减少与棒子末端的距离,可能会有帮助。
如果你有手机套,先试着在没有手机套的情况下找到正确的位置。之后再带着盖子重试。
寻找最佳位置有时需要20-30秒。根据我们的经验,将Nitrokey水平放置会产生更好的效果。如果你仍然遇到问题,请写信给我们的支持。如果您仍然遇到问题,请给我们的支持部门写信,为了获得最佳帮助,请注明发货/订单号和您的智能手机型号。
OpenPGP的故障排除¶
GnuPG:OpenPGP卡不可用¶
问题: GnuPG无法访问Nitrokey 3,并显示这样的错误信息::
$ gpg --card-status
gpg: selecting openpgp failed: No such device
gpg: OpenPGP card not available: No such device
解决方案: 在Linux系统上有两种常见的智能卡服务:scdaemon
,GnuPG的智能卡守护程序,以及``pcscd``,一个通用的智能卡守护程序。scdaemon``有两个驱动用于访问智能卡:其集成的``ccid``驱动程序试图直接访问智能卡。``pcsc
驱动程序使用``pcscd`` 守护程序代替。
一个智能卡只能由一个守护进程直接访问。这意味着,根据启动顺序,pcscd
可能会在``scdaemon`` 试图使用内部``ccid`` 驱动程序访问该卡之前锁定该卡。因此,我们建议使用``pcscd`` 驱动程序,用于``scdaemon``。你可以通过将``disable-ccid``添加到``~/.gnupg/scdaemon.conf``配置文件中,并重新启动``scdaemon``,例如用``gpg-connect-agent "SCD KILLSCD" /bye``来激活它。如果这样还不能解决问题,请看下一节,了解更多信息。
另外,你可以停用或卸载``pcscd``以避免这种冲突。
pcscd:未找到卡片¶
问题: 一个使用``pcscd``的应用程序不显示Nitrokey 3。
解决方案: 首先,确保``scdaemon``没有运行(见上一节)::
$ gpg-connect-agent "SCD KILLSCD" /bye
现在列出由``pcscd``与``pcsc_scan -r``识别的智能卡。你应该看到一个像这样的条目::
$ pcsc_scan -r
Using reader plug'n play mechanism
Scanning present readers..
0: Nitrokey 3 [CCID/ICCD Interface] 00 00
如果Nitrokey 3显示出来,说明它被``pcscd``正确识别,试图访问它的应用程序可能有问题。如果它没有出现,请确保你的``libccid``版本是最新的。对Nitrokey 3的支持在``libccid`` 1.5.0中添加。
更新设备数据库¶
如果你不能将``libccid``更新到一个支持的版本,你必须手动更新设备数据库。数据库的路径取决于你的发行版:
Arch, Debian, Ubuntu:
/etc/libccid_Info.plist
在覆盖文件之前,请确保备份该文件。你可以从``nitrokey-3-firmware`` 资源库下载一个`更新的设备数据库文件<https://github.com/Nitrokey/nitrokey-3-firmware/blob/main/Info.plist>`__。更新文件后,重新启动``pcscd``并再次运行``pcsc_scan -r``。Nitrokey 3现在应该出现了。
通过update.nitrokey.com进行的更新不起作用¶
目前网络更新程序不支持Nitrokey 3。然而,你可以使用这些`说明获得最新的固件<firmware-update.html>`_ 。
PIV Troubleshooting¶
Pyscard is not available¶
如果 pyscard 不可用于硝酸盐,则在尝试使用 PIV 功能时可能会出现以下错误:
该命令需要使用 pyscard 库,而您的系统中没有该库。更多信息请查阅 https://docs.nitrokey.com/nitrokeys/nitrokey3/troubleshooting#pyscard-is-not-available
要修复此错误,请安装带有 pcsc 额外依赖项的硝酸盐:
pip install pynitrokey[pcsc] pipx install pynitrokey[pcsc]
如果通过其他分发渠道安装 pynitrokey,请安装该渠道的所有可选依赖项。