相同的 OpenPGP 卡和读卡器设置在 Ubuntu 11.04 Natty 上运行良好。在全新安装升级到 Ocelet 后,我遇到了与此基本相同的问题那家伙在这里发了帖子。
总结一下读卡操作,例如
gpg --card-status
现在只能使用 sudo 命令。
答案1
获得了有关此问题的更多有用的故障排除信息。我在另一个系统上安装了 Ubuntu 10.04.3 LTS 并配置了 OpenPGP 智能卡设置。它对我的非 root 用户帐户正常工作。自然,我想检查一下 USB 设备上的权限。
在我的普通账户下,我首先运行了 agpg --card-edit
来绑定 usb 读卡器设备,然后我运行了sudo lsof -c gpg | grep usb
查找设备文件。结果什么也没得到,所以我运行了sudo gpg --card-edit
,结果收到一条错误消息!
seth@swk:~$ sudo gpg --card-edit
[sudo] password for seth:
gpg: WARNING: unsafe ownership on configuration file `/home/seth/.gnupg/gpg.conf'
gpg: detected reader `SCM SCR 3310 00 00'
gpg: pcsc_connect failed: sharing violation (0x8010000b)
gpg: apdu_send_simple(0) failed: locking failed
Please insert the card and hit return or enter 'c' to cancel: c
gpg: selecting openpgp failed: general error
gpg: OpenPGP card not available: general error
还有一些东西占用了 USB 读卡器。让我们来看看是什么:
sudo lsof | grep usb
这找到了我所寻找的金块。
pcscd 2362 root 5u CHR 189,4 0t0 2194 /dev/bus/usb/001/005
因此显然 pcscd 服务代表非 root 用户抓取读卡器设备,并在正确配置的 OpenPGP 设置上将 gpg 读/写请求中继到卡。
我们来看一下设备文件的权限。
seth@swk:~$ ls -l /dev/bus/usb/001/005
crw-rw-r-- 1 root root 189, 4 2011-10-18 11:49 /dev/bus/usb/001/005
好的,现在我觉得我越来越接近了。在 11.10 系统上,我记得组设置为 pcscd 而不是 root。看起来问题可能出在 pcscd 包上。我将尝试使用相同的权限配置 11.10 系统并报告结果。
更新:因此,我将新安装的 11.10 Ocelot 的 USB 设备上的用户和组权限设置为 root 和 root。gpg --card-status
以非 root 用户身份执行该命令仍然失败。我猜这是 pcscd 包中的一个错误。
答案2
我在 Ubuntu 16.04 上使用 Yubikey Neo 时也遇到了类似的问题。重新启动后,我可以运行以下命令来修复它。
ykpersonalize -m 82
Yubikey 有很多关于它的作用的文档。我不知道为什么我必须将卡重新设置为这种模式,也不知道什么可能会改变模式。我甚至不能告诉你它为什么有效。如果有人知道为什么它可能有效,那么我很乐意用更多细节更新答案。