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