OpenPGP smartcard med GnuPG på Fedora

Bemærk

Følgende instruktioner kræver, at Nitrokey 3 som minimum har firmwareversion 1.4.0 installeret. Se venligst firmware update for at lære, hvordan du opdaterer den.

GnuPG smartcard support kræver scdaemon. I Fedora er scdaemon en del af GnuPG-pakken.

Bemærk

scdaemon er installeret i /usr/libexec/scdaemon. Denne sti er normalt ikke en del af PATH-miljøvariablen.

GnuPG-projektet understøtter to opsætninger af interfacet med et OpenPGP smartcard.

  1. GnuPG (scdaemon med CCID-driver) → Smartcard (f.eks. Nitrokey)

    I denne opsætning kommunikerer scdaemon direkte til Nitrokey med sin interne CCID-driver og libusb. Det kræver, at Udev-reglerne er indstillet, fordi scdaemon kører i userspace med den indloggede brugers tilladelser.

  2. GnuPG (scdaemon med PCSC-bibliotek) → pcscd → Smartcard (f.eks. Nitrokey)

    I denne opsætning kommunikerer scdaemon med pcscd, som derefter kommunikerer med Nitrokey.

På Fedora er kun den anden opsætning understøttet, fordi konfigurationen af GnuPG-pakken sætter CCID-driveren som deaktiveret og pcsc-understøttelsen som påkrævet. Den relevante konfiguration kan findes i spec-filen her og her.

Fejlfinding

Den seneste Fedora 38-version bør fungere uden problemer efter installationen. Opgraderede versioner af Fedora kan have modstridende konfigurationer og bør tjekkes som nedenfor. Fedora Silverblue blev rapporteret at have problemer med GnuPG og smartcards. Instruktionerne nedenfor gælder kun for Fedora Workstation og Fedora Server udgaver.

Den korrekte konfiguration af en opsætning kan kontrolleres ved at forespørge oplysninger om Nitrokey med gpg --card-status.

Tjek genkendelse

Kontrollér med kommandoen lsusb, at Nitrokey genkendes. Outputtet bør indeholde en liste over Nitrokey, f.eks. Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.

Tjek systemkonfigurationen

  1. Sørg for, at pakken pcscd er installeret med dnf install pcsc-lite. Desuden skal systemd service og socket være aktiveret og startet med systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. scdaemon kræver libpcsclite biblioteket for at forbinde til pcscd. Stien til pcsc-biblioteket kan angives eksplicit med echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf. Alternativt kan biblioteket også gøres tilgængeligt med et symbolsk link som følger ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so. Sørg for, at filen ~/.gnupg/scdaemon.conf ikke har nogen modstridende indstillinger.

  3. scdaemon forventer som standard eksklusiv adgang til pcscd, for at undgå potentielle problemer med samtidige ændringer af oplysninger på kortet. Dette får adgangen til at mislykkes, hvis andre klienter, normalt webbrowsere, får adgang til kortet, selv om det kun er for at læse. Delt adgang kan aktiveres med echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (i GnuPG version 2.2.28 eller højere).