Perché GnuPG 2 e gpg-connect-agent falliscono con "ERR 67108983 Nessun demone SmartCard"?


10

Usando Debian Jessie e GnuPG 2, ogni volta che provo ad usare GnuPG 2 ( gpg2) o gpg-connect-agentinsieme a una smartcard OpenPGP (nel mio caso un YubiKey), l'operazione fallisce con un messaggio

$ 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>

Quando si utilizza l'eredità GnuPG 1 ( gpg), tutto funziona bene.

Cosa non va qui?

Risposte:


15

scdaemon manca

GnuPG 2 si collega alla scheda tramite gpg-agent, che di nuovo non include le funzionalità di smart card, ma le accede tramite un'altra applicazione. Questo può essere configurato e ha un valore predefinito dipendente dal sistema, da 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.

In questo modo si rivela che GnuPG tenta di eseguire /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]

Ma questo non è disponibile:

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

Installazione scdaemon

Una rapida ricerca attraverso apt-cacherivela che Debian tirato il scdaemon fuori del gnupg2pacchetto, probabilmente perché introduce una serie di nuove dipendenze GnuPG altrimenti non avrebbero:

Package: scdaemon
Source: gnupg2
Version: 2.1.10-3
Installed-Size: 538
Maintainer: Debian GnuPG Maintainers <pkg-gnupg-maint@lists.alioth.debian.org>
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.

Installandolo con sudo apt-get install scdaemonrisolve il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.