Mengapa GnuPG 2 dan gpg-connect-agent gagal dengan "ERR 67108983 No SmartCard daemon"?

10

Menggunakan Debian Jessie dan GnuPG 2, setiap kali saya mencoba menggunakan GnuPG 2 ( gpg2) atau gpg-connect-agentbersama dengan smartcard OpenPGP (dalam kasus saya YubiKey), operasi gagal dengan pesan

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

Saat menggunakan warisan GnuPG 1 ( gpg), semuanya berfungsi dengan baik.

Apa yang salah di sini?

Jens Erat
sumber

Jawaban:

15

scdaemon hilang

GnuPG 2 terhubung ke kartu melalui gpg-agent, yang lagi-lagi tidak termasuk kemampuan kartu pintar, tetapi mengaksesnya melalui aplikasi lain. Ini dapat dikonfigurasi dan memiliki standar yang tergantung pada sistem, dari 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.

Melakukannya mengungkapkan GnuPG mencoba menjalankan /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]

Tetapi ini tidak tersedia:

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

Menginstal scdaemon

Permintaan cepat apt-cachemengungkapkan bahwa Debian menarik scdaemon keluar dari gnupg2paket, kemungkinan karena memperkenalkan banyak dependensi baru yang tidak akan dimiliki GnuPG:

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.

Menginstalnya dengan sudo apt-get install scdaemonmenyelesaikan masalah.

Jens Erat
sumber