我正在使用 Arch Linux Linux uplink 4.14.56-1-lts #1 SMP Tue Jul 17 20:11:42 CEST 2018 x86_64 GNU/Linux
。我正在尝试解决我目前在使用GnuPG 2.2.9
(libgcrypt 1.8.3
gpg
gpg: bad data signature from key 8975BA8B6100C6B1: Wrong key usage (0x19, 0x2)
gpg: bad data signature from key DEA16371974031A5: Wrong key usage (0x19, 0x2)
...所以我不确定这是否会干扰我的其他问题:签署 Git 提交并获取gpg failed to sign the data failed to write commit object
.
这是我拥有的公钥/私钥列表:
[gorre@uplink ~]$ gpg --list-keys
gpg: bad data signature from key 8975BA8B6100C6B1: Wrong key usage (0x19, 0x2)
gpg: bad data signature from key DEA16371974031A5: Wrong key usage (0x19, 0x2)
/home/gorre/.gnupg/pubring.kbx
------------------------------
pub rsa4096 2015-07-21 [SC] [expires: 2019-07-21]
94AE36675C464D64BAFA68DD7434390BDBE9B9C5
uid [ unknown] Colin Ihrig ...
sub rsa4096 2015-07-21 [E] [expires: 2019-07-21]
pub rsa4096 2014-04-01 [SCEA] [expires: 2024-03-29]
FD3A5288F042B6850C66B31F09FE44734EB7990E
uid [ unknown] Jeremiah Senkpiel ...
uid [ unknown] keybase.io/fishrock ...
sub rsa4096 2014-04-01 [SEA] [expires: 2024-03-29]
pub rsa4096 2014-11-10 [SCEA]
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1
uid [ unknown] keybase.io/jasnell ...
uid [ unknown] James M Snell ...
uid [ unknown] James M Snell ...
sub rsa2048 2014-11-10 [S] [expires: 2022-11-08]
sub rsa2048 2014-11-10 [E] [expires: 2022-11-08]
pub rsa2048 2013-11-18 [SC]
DD8F2338BAE7501E3DD5AC78C273792F7D83545D
uid [ unknown] Rod Vagg ...
uid [ unknown] Rod Vagg ...
sub rsa2048 2013-11-18 [E]
pub rsa4096 2016-01-12 [SC]
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8
uid [ unknown] Myles Borins ...
uid [ unknown] Myles Borins ...
uid [ unknown] Myles Borins ...
uid [ unknown] Myles Borins (Not used after January 2017) ...
sub rsa2048 2016-01-12 [E] [expires: 2024-01-10]
sub rsa2048 2016-01-12 [SA] [expires: 2024-01-10]
pub rsa4096 2015-12-17 [SC] [expires: 2019-12-17]
B9AE9905FFD7803F25714661B63B535A4C206CA9
uid [ unknown] Evan Lucas ...
uid [ unknown] Evan Lucas ...
sub rsa4096 2015-12-17 [E] [expires: 2019-12-17]
pub rsa4096 2016-04-07 [SC]
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600
uid [ unknown] Michaël Zasso (Targos) ...
sub rsa4096 2016-04-07 [E]
pub rsa4096 2016-10-07 [SC]
77984A986EBC2AA786BC0F66B01FBB92821C587A
uid [ unknown] Gibson Fahnestock ...
sub rsa4096 2016-10-07 [E]
pub rsa4096 2018-06-12 [SC]
B1BEB985FA77CDF913E2EAE88E0DCA371CC3F4EC
uid [ultimate] Gorre ...
sub rsa4096 2018-06-12 [E]
[gorre@uplink ~]$ gpg --list-secret-keys
/home/gorre/.gnupg/pubring.kbx
------------------------------
sec rsa4096 2018-06-12 [SC]
MY_SECRET_KEY
uid [ultimate] Gorre ...
ssb rsa4096 2018-06-12 [E]
更新
看起来我最初的问题与gpg-agent
; 我最终配置$HOME/.gnupg/gpg-agent.conf
为:
[gorre@uplink ~]$ nano ~/.gnupg/gpg-agent.conf
max-cache-ttl 86400
default-cache-ttl 86400
default-cache-ttl-ssh 86400
max-cache-ttl-ssh 86400
# Run pacman -Ql pinentry | grep /usr/bin/ for more options, I'm using Gnome 2.x
pinentry-program /usr/bin/pinentry-gnome3
[gorre@uplink ~]$ gpg-connect-agent reloadagent /bye
......现在一切正常 - 对于我想要的。尽管如此,每次我执行gpg
命令时,这些错误仍然存在,但看起来它不会影响gpg
- 在我使用它的范围内的功能。
我通过编辑我的密钥并将“签名”用法添加到仅加密的子密钥来解决这个问题。
首先编辑密钥:
gpg 抱怨签名错误的子密钥是
ZZZZZZZZZZZZZZZZ
,第二个密钥,实际上,那个是仅加密的(usage: E
),所以我添加Signing
到那个:最后,保存更改:
FWIW 几年前我使用密钥库来生成这个密钥对,而且我不是 gpg 专家,所以我不知道这是否是解决问题的“正确”方法,但它对我有用。此外,为了全面披露,实际上有两个子密钥是仅加密的,我为它们都添加了签名,但我编辑了上面的文字记录以使其更清晰。YMMV。