Eu resolvi isso editando minha chave e adicionando o uso de "Assinatura" à subchave que era somente criptografada.
Primeiro edite a chave:
> 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>
A subchave que o gpg estava reclamando sobre assinatura incorreta era ZZZZZZZZZZZZZZZZ
, a segunda chave e, na verdade, essa era somente criptografada ( usage: E
), então adicionei Signing
a essa:
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>
Por fim, salve as alterações:
gpg> save
FWIW Eu usei keybase há alguns anos para gerar esse par de chaves, e não sou especialista em gpg, então não sei se essa é a maneira "correta" de resolver o problema, mas funcionou para mim. Além disso, no interesse da divulgação completa, na verdade, havia duas subchaves que eram somente criptografadas e adicionei a Assinatura a ambas, mas editei a transcrição acima para torná-la mais clara. YMMV.