Por que o GnuPG 2 e o gpg-connect-agent falham com o “ERR 67108983 No daemon SmartCard”?

4

Usando o Debian Jessie e o GnuPG 2, cada vez que tento usar o GnuPG 2 ( gpg2 ) ou gpg-connect-agent junto com um smartcard OpenPGP (no meu caso um YubiKey), a operação falha com uma mensagem

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

Ao usar o GnuPG 1 legado ( gpg ), tudo funciona bem.

O que está errado aqui?

    
por Jens Erat 05.01.2016 / 19:40

1 resposta

7

scdaemon está ausente

O GnuPG 2 conecta-se ao cartão através de gpg-agent , o que novamente não inclui os recursos do cartão inteligente, mas os acessa através de outro aplicativo. Isso pode ser configurado e tem um padrão dependente do sistema, de 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.

Isso mostra que o GnuPG tenta executar /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]

Mas isso não está disponível:

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

Instalando scdaemon

Uma consulta rápida através de apt-cache revela que o Debian retirou o scdaemon do pacote gnupg2 , provavelmente porque introduz um monte de novas dependências que o GnuPG não teria:

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.

Instalar com sudo apt-get install scdaemon resolve o problema.

    
por 05.01.2016 / 19:40