非 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 有許多關於其用途的文件。我不知道為什麼我必須將卡片放回此模式或什麼可能會改變模式。我什至無法告訴你為什麼它有效。如果有人知道為什麼這可能有效,那麼我很樂意用更多詳細資訊更新答案。

相關內容