故障排除

在这里,你会发现一个常见的问题集合。

Nitrokey在Linux上未被检测到

如果没有检测到硝基钥匙,请按以下步骤操作。

  1. 把这个文件`41-nitrokey.rules <https://www.nitrokey.com/sites/default/files/41-nitrokey.rules>`__复制到``/etc/udev/rules.d/``

  2. 通过``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 无法初始化,因此无法为 ®硝基加载。

为确保驱动程序初始化成功,请为设备初始化添加重试功能。在注册表中添加以下注册表键值。

Path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers
Key:RetryDeviceInitialize
类型:DWORD (32-bit)`
数据:1`

备注

注册表密钥适用于 Windows 10(1903 (19H1) 及更高版本)和 Windows 11。

如果智能卡阅读器之前已经安装,但初始化失败,则可能需要从注册表中删除。在注册表中删除以下注册表路径。

Path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers\Nitrokey CCID/ICCD Interface 0

如果智能卡读卡器安装过多次,可能会有多个路径,路径末尾的数字会递增。

重启后,硝基被识别为*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,请安装该渠道的所有可选依赖项。