저는 아치 리눅스를 사용하고 있습니다 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
수행 중인 기능에는 영향을 미치지 않는 것 같습니다.
답변1
키를 편집하고 암호화 전용 하위 키에 "서명" 사용법을 추가하여 문제를 해결했습니다.
먼저 키를 편집하세요.
> gpg --edit-key "<my@email>"
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
gpg: bad data signature from key ZZZZZZZZZZZZZZZZ: Wrong key usage (0x19, 0x2)
Secret key is available.
sec rsa4096/XXXXXXXXXXXXXXXX
created: YYYY-MM-DD expires: never usage: SCEA
trust: ultimate validity: ultimate
ssb rsa2048/YYYYYYYYYYYYYYYY
created: YYYY-MM-DD expires: YYYY-MM-DD usage: S
ssb rsa2048/ZZZZZZZZZZZZZZZZ
created: YYYY-MM-DD expires: YYYY-MM-DD usage: E
[ultimate] (1). My Name <my@email>
gpg가 서명 오류에 대해 불평하는 하위 키는 ZZZZZZZZZZZZZZZZ
두 번째 키입니다. 실제로 해당 하위 키는 ( )만 암호화하므로 여기에 usage: E
추가했습니다 .Signing
gpg> key 2
sec rsa4096/XXXXXXXXXXXXXXXX
created: YYYY-MM-DD expires: never usage: SCEA
trust: ultimate validity: ultimate
ssb rsa2048/YYYYYYYYYYYYYYYY
created: YYYY-MM-DD expires: YYYY-MM-DD usage: S
ssb* rsa2048/ZZZZZZZZZZZZZZZZ
created: YYYY-MM-DD expires: YYYY-MM-DD usage: E
[ultimate] (1). My Name <my@email>
gpg> change-usage
Changing usage of a subkey.
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
sec rsa4096/XXXXXXXXXXXXXXXX
created: YYYY-MM-DD expires: never usage: SCEA
trust: ultimate validity: ultimate
ssb rsa2048/YYYYYYYYYYYYYYYY
created: YYYY-MM-DD expires: YYYY-MM-DD usage: S
ssb* rsa2048/ZZZZZZZZZZZZZZZZ
created: YYYY-MM-DD expires: YYYY-MM-DD usage: SE
[ultimate] (1). My Name <my@email>
마지막으로 변경 사항을 저장합니다.
gpg> save
FWIW 저는 몇 년 전에 이 키 쌍을 생성하기 위해 키베이스를 사용했습니다. 저는 gpg 전문가가 아니기 때문에 이것이 문제를 해결하는 "올바른" 방법인지는 모르겠지만 저에게는 효과가 있었습니다. 또한 전체 공개를 위해 실제로 암호화 전용 하위 키가 두 개 있고 두 키 모두에 서명을 추가했지만 더 명확하게 하기 위해 위의 기록을 편집했습니다. YMMV.