Gpg 在我的 Ubuntu 22.4.5 LTS 上停止工作,可能是升级后。它可以列出我的密钥,自上次更新以来一直在签名 git commit。
$ gpg --list-secret-keys --keyid-format=long
/home/g4b0/.gnupg/pubring.kbx
-----------------------------
sec rsa3072/WWWWWWWWWWWWWWWW 2024-06-03 [SC] [expires: 2026-06-03]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ultimate] Foo Bar <[email protected]>
ssb rsa3072/AAAAAAAAAAAAAAAA 2024-06-03 [E] [expires: 2026-06-03]
sec rsa3072/ZZZZZZZZZZZZZZZZ 2024-06-04 [SC] [expires: 2026-06-04]
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
uid [ultimate] Bar Foo <[email protected]>
ssb rsa3072/BBBBBBBBBBBBBBBB 2024-06-04 [E] [expires: 2026-06-04]
尝试使用它会导致错误的 CA 证书错误
echo "test" | gpg -vv --clearsign
gpg: using pgp trust model
gpg: key WWWWWWWWWWWWWWWW: accepted as trusted key
gpg: key ZZZZZZZZZZZZZZZZ: accepted as trusted key
gpg: writing to stdout
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
test
gpg: pinentry launched (3 )
gpg: signing failed: Bad CA certificate
gpg: [stdin]: clear-sign failed: Bad CA certificate
Ubuntu 版本:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
一切都已更新。如何解决?
这是由于组件中的错误或配置错误造成的
pinentry
,您应该尝试使用其他pinentry
程序,例如pinentry-curses
首先我们安装它
sudo apt install pinentry-curses
然后我们
~/.gnupg/gpg-agent.conf
在文件末尾创建或添加然后我们重新启动
现在它应该可以工作了,你可以尝试
echo "test" | gpg --clearsign
如果这不起作用,您可以尝试启用环回
pinentry
模式添加
~/.gnupg/gpg-agent.conf
行allow-loopback-pinentry
然后重新启动并重试但在我解决了 Saxtheowl 提示之后,这是一个 JetBrains PhpStorm IDE 错误,它覆盖了
~/.gnupg/gpg-agent.conf
我解决了:
错误链接:https ://youtrack.jetbrains.com/issues?q=%7Bgpg%7D&preview=IJPL-173525