gpg2:如何摆脱“请插入带有序列号的卡”,从不同的卡/ Yubikey获取相同的密钥

信息安全 gnupg 智能卡 优比键
2021-08-21 06:53:16

我有多个携带相同 GPG 密钥的 Yubikey。我想在我的笔记本电脑上从一个 Yubikey 切换到另一个 Yubikey。这两个显然有不同的序列号。

当我尝试解密某些东西(例如使用pass)时切换密钥后,我得到一个弹出窗口:

Please insert card with serial number XXXXXXXXXX

(这是 GnuPG 版本 2.2.17。)

我怎样才能摆脱弹出窗口,告诉gpg忽略我到目前为止使用的智能卡的序列号,而是寻找任何具有我要使用的私钥的卡?

1个回答

解决方案

从 中删除相关键的键柄~/.gnupg/private-keys-v1.d

您可以使用 列出按键 ID gpg --list-secret-keys --with-keygrip

如果您的所有私钥都在 Yubikey 等外部卡上,您可以使用以下方法将它们全部删除:

rm -r ~/.gnupg/private-keys-v1.d

有关目录的更多信息,请参见此处private-keys-v1.d


删除keygrips后,运行似乎有益

gpgconf --kill gpg-agent
gpg --card-status

重新启动 gpg-agent 并重新加载卡信息。

额外信息:当您不重新启动/重新加载时会发生什么(对于搜索这些错误消息的人)

如果你只这样做gpgconf --kill gpg-agent,下一次解密可能会显示

gpg: decryption failed: No secret key

重新加载卡信息可以解决这个问题。

如果你只这样做gpg --card-edit,下一次解密可能会显示

gpg: OpenPGP card not available: No such file or directory

在此之前重新启动代理可以解决此问题。

我个人认为这是一个糟糕的用户体验,理想情况下 GPG 会自动解决这个问题,但我不知道任何有关它的技术细节。