¿Por qué GnuPG 2 y gpg-connect-agent fallan con "ERR 67108983 No SmartCard daemon"?


10

Usando Debian Jessie y GnuPG 2, cada vez que intento usar GnuPG 2 ( gpg2) o gpg-connect-agentjunto con una tarjeta inteligente OpenPGP (en mi caso, una YubiKey), la operación falla con un mensaje

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

Cuando se usa el GnuPG 1 ( gpg) heredado , todo funciona bien.

¿Qué está pasando mal aquí?

Respuestas:


15

scdaemon Está perdido

GnuPG 2 se conecta a la tarjeta a través gpg-agent, lo que nuevamente no incluye las capacidades de la tarjeta inteligente, pero accede a ellas a través de otra aplicación. Esto se puede configurar y tiene un valor predeterminado dependiente del sistema, desde 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.

Hacerlo revela que GnuPG intenta ejecutar /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]

Pero esto no está disponible:

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

Instalando scdaemon

Una consulta rápida a través apt-cacherevela que Debian sacó el scdaemon cabo del gnupg2paquete, probablemente porque introduce un montón de nuevas dependencias GnuPG de otro modo no tendría:

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.

Instalarlo con sudo apt-get install scdaemonresuelve el problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.