非root用户无法读取OpenPGP卡吗?

非root用户无法读取OpenPGP卡吗?

相同的 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 有很多关于它的作用的文档。我不知道为什么我必须将卡重新设置为这种模式,也不知道什么可能会改变模式。我甚至不能告诉你它为什么有效。如果有人知道为什么它可能有效,那么我很乐意用更多细节更新答案。

相关内容