OpenPGP smartkort med GnuPG på Fedora

Observera

Följande instruktioner kräver att Nitrokey 3 har minst firmware version 1.4.0 installerad. Se firmware update för att lära dig hur du uppdaterar den.

GnuPG:s stöd för smartkort kräver scdaemon. I Fedora är scdaemon en del av GnuPG-paketet.

Observera

scdaemon är installerad i /usr/libexec/scdaemon. Denna sökväg är vanligtvis inte en del av miljövariabeln PATH.

GnuPG-projektet stöder två inställningar för gränssnitt mot ett OpenPGP-smartkort.

  1. GnuPG (scdaemon med CCID-drivrutin) → Smartkort (t.ex. Nitrokey)

    I den här installationen kommunicerar scdaemon direkt till Nitrokey med sin interna CCID-drivrutin och libusb. Det kräver att Udev-reglerna ställs in, eftersom scdaemon körs i userspace med den inloggade användarens behörigheter.

  2. GnuPG (scdaemon med PCSC-bibliotek) → pcscd → Smartkort (t.ex. Nitrokey)

    I den här installationen kommunicerar scdaemon med pcscd, som sedan kommunicerar med Nitrokey.

På Fedora stöds endast den andra inställningen, eftersom konfigurationen av GnuPG-paketet anger CCID-drivrutinen som inaktiverad och pcsc-stödet som obligatoriskt. Den relevanta konfigurationen finns i spec-filen här och här.

Felsökning

Den senaste Fedora 38-versionen bör fungera utan problem efter installationen. Uppgraderade versioner av Fedora kan ha motstridiga konfigurationer och bör kontrolleras enligt nedan. Fedora Silverblue rapporterades ha problem med GnuPG och smartkort. Instruktionerna nedan gäller endast Fedora Workstation och Fedora Server utgåvor.

Korrekt konfiguration av en installation kan kontrolleras genom att söka information om Nitrokey med gpg --card-status.

Kontrollera igenkänning

Kontrollera med kommandot lsusb att Nitrokey känns igen. Utdata bör innehålla en lista över Nitrokey, t.ex. Bus 001 Enhet 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Kontrollera systemets konfiguration

  1. Kontrollera att paketet pcscd är installerat med dnf install pcsc-lite. Dessutom måste tjänsten systemd och socket vara aktiverade och startade med systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. scdaemon kräver biblioteket libpcsclite för att ansluta till pcscd. Sökvägen till pcsc-biblioteket kan anges explicit med echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternativt kan biblioteket också göras tillgängligt med en symbolisk länk enligt följande ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Se till att filen ~/.gnupg/scdaemon.conf inte har några motstridiga inställningar.

  3. scdaemon förväntar sig som standard exklusiv åtkomst till pcscd, för att undvika potentiella problem med samtidiga ändringar av information på kortet. Detta gör att åtkomsten misslyckas om andra klienter, vanligtvis webbläsare, får åtkomst till kortet, även om det bara är för läsning. Delad åtkomst kan aktiveras med echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (i GnuPG version 2.2.28 eller senare).