![GPG 智能卡获取公共子密钥时出错](https://linux22.com/image/1480100/GPG%20%E6%99%BA%E8%83%BD%E5%8D%A1%E8%8E%B7%E5%8F%96%E5%85%AC%E5%85%B1%E5%AD%90%E5%AF%86%E9%92%A5%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在尝试使用 YubiKey 设置 OpenPGP 智能卡。
它是 YubiKey 4,因此理论上应该接受 4096 位密钥,但我使用的是 2048 位子密钥。
我有一个主密钥(仅用于证书)和三个子密钥(签名、加密、身份验证),我已将它们复制到 YubiKey。
我已将公钥上传到我的网站,并在智能卡中设置了公钥的URL。
当我尝试使用 fetch 时,我收到错误,因为卡正在查找错误的公钥。示例(使用 windows 和 GPGWin):
Keys:
11111111 - Master Key
22222222 - Signing sub
33333333 - Encrypt sub
44444444 - Auth sub
C:\gpg> gpg2 --card-status
...
URL of public key: https://my.server/pgp.key
...
General key info: pub 2048/22222222 2016-01-09 Me <[email protected]>
sec# 4096R/11111111 created: 2016-01-09
ssb> 2048R/22222222 created: 2016-01-09
card-no: 0006 12345678
ssb> 2048R/33333333 created: 2016-01-09
card-no 0006 12345678
ssb> 2048R/44444444 created: 2016-01-09
card-no 0006 12345678
然后尝试从智能卡中获取:
C:\gpg> gpg2 --card-edit
gpg> admin
Admin commands are allowed
gpg> fetch
gpg: requesting key 22222222 from https server my.server
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: keyserver helper internal error
gpg: keyserver communications error: General Error
当我运行时gpg -a --export 11111111 > pgp.key
,得到的公钥和你运行的一样--export 22222222
(我认为这是子钥的预期行为),所以我不清楚它为什么要寻找另一个密钥。
我尝试过导出带有和不带有装甲的密钥,并确认文件的所有权已设置www-data:www-data
为我的服务器的/var/web
。
任何进一步的建议都将受到赞赏。
答案1
我看到了类似的东西,可能与https://lists.gnupg.org/pipermail/gnupg-users/2015-May/053558.html? 该主题中的最后一篇文章似乎表明它已被承认为一个问题,但显然没有改变。
它似乎就像‘通用密钥信息’密钥一样,在我们的例子中是签名子密钥,是它想要抓取的密钥。
在我的场景中fetch
出现成功了,但实际上并没有将任何东西导入我的密钥环。通过手动获取真正的公钥可以轻松解决,但仍然很烦人。