J'utilise enigmail depuis plus d'un an sans problème, et aujourd'hui cela ne fonctionne pas.
J'ai trouvé le fait intéressant suivant:
gpg --decrypt something.gpg # this works
gpg2 --decrypt something.gpg # this fails
Donc, quelque chose est cassé avec la version 2 de gpg sur ma machine.
Cela m'a amené à constater que:
gpg --list-secret-keys # reads from ~/.gnupg/secring.gpg
gpg2 --list-secret-keys # reads from ~/.gnupg/pubring.gpg (pubring?!)
Cela semble être la racine du problème ... bien sûr, gpg2
ne peut pas trouver la clé secrète car elle cherche dans le mauvais fichier.
Comment mon gpg2
échec pourrait -ilgpg
œuvres fonctionnent bien? Je ne vois aucune option pour spécifier d'où les clés secrètes sont lues.
Quelqu'un a des idées?
Réponse à @grawity :
Merci, j'apprécie votre aide. J'ai courustrace
et je vois de quoi tu parles.
Cependant, même après gpg2 --import ...
je ne vois aucune différence de comportement. Je ne peux le faire fonctionner que si je redémarre (sans démarrer gpg-agent), exécute gpg2 --import ...
, puis exécute gpg2 --decrypt ...
. Après cette séquence, thunderbird + enigmail se comporte également bien. Cependant, après environ 15 minutes (je suppose que le mot de passe que j'ai entré pour déchiffrer a expiré), puisgpg-agent
revient à son ancien comportement. Cette séquence est reproductible.
Voici donc une sortie si elle permet de clarifier quoi que ce soit:
sortie de gpg2 -K
:
/home/<username>/.gnupg/pubring.gpg
---------------------------------
sec rsa4096/AAAAAAAA <date> [SC]
uid [ultimate] <description of me>
ssb rsa4096/BBBBBBBB <date> [E]
sortie de gpg-connect-agent
> keyinfo --list
S KEYINFO <keygrip associated with AAAAAAAA> D - - - P - - -
S KEYINFO <keygrip associated with BBBBBBBB> D - - - P - - -
OK
sortie de gpg2 -v -r <my email> -e testfile
gpg: using PGP trust model
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: This key belongs to us
gpg: reading from 'testfile'
gpg: writing to 'testfile.gpg'
gpg: RSA/AES256 encrypted for: "BBBBBBBB <description of me>"
sortie de gpg2 -v -d testfile.gpg
gpg: public key is BBBBBBBB
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: encrypted with 4096-bit RSA key, ID BBBBBBBB, created <date>
"<description of me>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key
la source
gpg-agent
et le programme Pinentry devaient être définis surpinentry-gtk-2
. Avant, il était défini surpinentry-gnome3
, qui existait sur mon système, mais cela n'a pas fonctionné. J'ai dû installer manuellementpinentry-gtk-2
.Réponses:
Ce n'est pas le seul fichier qu'il regarde.
Dans GnuPG 1.x (et 2.0), le "secret" avait également une copie en double des données publiques de votre keyblock, il était donc entièrement autonome (et la seule différence entre
gpg -k
etgpg -K
était le fichier qu'il avait lu) , mais en même temps plus difficile à maintenir pour le programme.Dans GnuPG 2.1, les clés secrètes sont désormais stockées indépendamment - elles sont gérées par gpg-agent , qui les conserve
~/.gnupg/private-keys-v1.d/
. Donc , à la foisgpg -k
etgpg -K
sont maintenant de lire les informations OpenPGP du pubring, mais celui - ci demande en outre gpg-agent dont les certificats ont les clés secrètes associées. Si vous utilisez strace , vous devriez remarquer unconnect()
appel juste après avoir lu le pubring.Si GnuPG n'a pas migré automatiquement les clés, il suffit d'importer le tout directement directement:
Pour vérifier manuellement le contenu de l'agent:
Ce sont des "clés" - comparez-les avec le secret de GnuPG:
la source
gpg --gen-key
lequel je voulais utilisergopass
. Malheureusement, lesgopass
utilisationsgpg2
... ontgpg2 --import
fonctionné comme un charme! Merci!gpg2 --import ~/.gnupg/pubring.gpg
il l'a corrigé.Finalement, j'ai décidé que le problème était que j'utilisais Debian Unstable et qu'il y avait un décalage de version introduit par un
apt-get dist-upgrade
. Je suppose que c'est pourquoi ils l'appellent "instable".la source