为什么GnuPG 2和gpg-connect-agent失败并显示“ ERR 67108983 No SmartCard daemon”?


10

使用Debian Jessie和GnuPG 2,每次我尝试使用GnuPG 2(gpg2)或gpg-connect-agent与OpenPGP智能卡(在我的情况下为YubiKey)一起使用时,操作都会失败并显示一条消息

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

使用旧版GnuPG 1(gpg)时,一切正常。

这是怎么了

Answers:


15

scdaemon 不见了

GnuPG 2通过链接到卡gpg-agent,它又不包含智能卡功能,而是通过另一个应用程序访问它们。可以进行配置,并具有与系统有关的默认值,来自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.

这样做表明GnuPG尝试运行/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]

但这不可用:

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

正在安装 scdaemon

通过快速查询apt-cache发现,Debian的拉scdaemon 出来的gnupg2包,可能是因为它引入了许多新的依赖的GnuPG,否则不会有:

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.

与一起安装sudo apt-get install scdaemon可解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.