Dlaczego GnuPG 2 i gpg-connect-agent zawodzą z „ERR 67108983 Brak demona SmartCard”?

10

Używając Debiana Jessie i GnuPG 2, za każdym razem, gdy próbuję użyć GnuPG 2 ( gpg2) lub gpg-connect-agentrazem z kartą Smart OpenPGP (w moim przypadku YubiKey), operacja kończy się niepowodzeniem z komunikatem

$ gpg-connect-agent --hex "scd apdu 00 f1 00 00" /bye
ERR 67108983 No SmartCard daemon <GPG Agent>
$ gpg2 --card-status
ERR 67108983 No SmartCard daemon <GPG Agent>

Podczas korzystania ze starszej wersji GnuPG 1 ( gpg) wszystko działa dobrze.

Co tu idzie nie tak?

Jens Erat
źródło

Odpowiedzi:

15

scdaemon brakuje

GnuPG 2 łączy się z kartą gpg-agent, która ponownie nie obejmuje możliwości kart inteligentnych, ale uzyskuje do nich dostęp za pośrednictwem innej aplikacji. Można to skonfigurować i ma wartość domyślną zależną od systemu, z man gpg-agent:

--scdaemon-program filename
      Use program filename as the Smartcard daemon.  The default is
      installation dependent and can be shown with the gpgconf command.

W ten sposób GnuPG próbuje uruchomić /usr/lib/gnupg2/scdaemon:

$ gpgconf
gpg:GPG für OpenPGP:/usr/bin/gpg2
gpg-agent:GPG Agent:/usr/bin/gpg-agent
scdaemon:Smartcard Daemon:/usr/lib/gnupg2/scdaemon
[snip]

Ale to nie jest dostępne:

$ /usr/lib/gnupg2/scdaemon
bash: /usr/lib/gnupg2/scdaemon2: No such file or directory

Instalowanie scdaemon

Szybkie zapytanie poprzez apt-cacheujawnia, że Debian wyciągnął scdaemon Spośród gnupg2opakowaniu, prawdopodobnie dlatego, że wprowadza kilka nowych uzależnień GnuPG inaczej nie miałyby:

Package: scdaemon
Source: gnupg2
Version: 2.1.10-3
Installed-Size: 538
Maintainer: Debian GnuPG Maintainers <[email protected]>
Architecture: amd64
Replaces: gpgsm (<< 2.0.18-2)
Depends: gnupg-agent (= 2.1.10-3), libassuan0 (>= 2.2.0), libc6 (>= 2.15),
  libgcrypt20 (>= 1.6.1), libgpg-error0 (>= 1.14), libksba8 (>= 1.2.0),
  libnpth0 (>= 0.90), libusb-0.1-4 (>= 2:0.1.12)
Breaks: gpgsm (<< 2.0.18-2)
Description-en: GNU privacy guard - smart card support
 GnuPG is GNU's tool for secure communication and data storage.
 It can be used to encrypt data and to create digital signatures.
 It includes an advanced key management facility and is compliant
 with the proposed OpenPGP Internet standard as described in RFC4880.
 .
 This package contains the smart card program scdaemon, which is used
 by gnupg-agent to access OpenPGP smart cards.

Zainstalowanie go sudo apt-get install scdaemonrozwiązuje problem.

Jens Erat
źródło