Je n'arrive pas à obtenir gnupg pour décrypter les fichiers cryptés avec mes clés. J'ai essayé de migrer ma clé secrète d'un ancien ordinateur portable vers un nouveau, et je reçois toujours la même erreur:
gpg: decryption failed: No secret key
J'ai essayé d'exporter mes sous-clés publiques, secrètes et de mon ancien ordinateur portable comme suit:
gpg --export MYKEYID > pub.key
gpg --export-secret-keys MYKEYID > sec.key
gpg --export-secret-subkeys MYKEYID > sub.key
Je les ai ensuite copiés sur mon nouvel ordinateur portable et les ai importés comme suit:
gpg --import pub.key
gpg --import sec.key
gpg --import sub.key
J'ai ensuite édité la clé pour lui donner une confiance ultime:
gpg --edit-key MYKEYID
gpg> trust
...
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
quoi qu'il arrive, il ne parvient pas à déchiffrer:
gpg --decrypt -v encryptedfile.gpg
gpg: public key is E78E22A13ED8B15D
gpg: encrypted with ELG key, ID E78E22A13ED8B15D
gpg: decryption failed: No secret key
Version sur ancien ordinateur portable:
gpg --version
gpg (GnuPG) 2.1.21
libgcrypt 1.7.6
Version sur un nouvel ordinateur portable:
gpg --version
gpg (GnuPG/MacGPG2) 2.2.3
libgcrypt 1.8.1
C'était entièrement ma faute. Je ne sais pas ce qui s'est passé, mais le fichier que j'essayais de déchiffrer n'était pas chiffré par ma clé. J'ai essayé un fichier différent et cela a fonctionné.
Je ne sais pas comment cela s'est produit, mais tester le même fichier sur l'ancienne machine m'aurait sauvé une tonne de temps :).
J'ai commencé au hasard à obtenir l'erreur
gpg: decryption failed: No secret key
également lors de la tentative de décryptage de fichiers. Étrangement, GPG me disait que les fichiers étaient cryptés avec un ID de clé différent du mien (malgré l'identification correcte de mon nom et de la date de création de la clé). J'ai redémarré mon ordinateur et le problème a disparu.
Je suppose qu'il y a un bogue où certains bits peuvent être mal alignés dans la mémoire du démon GPG, puis il faudra redémarrer.
J'ai eu l'erreur:
gpg: decryption failed: No secret key
après avoir fermé une invite gpg avec Ctrl + C, alors peut-être qu'il y avait encore un état qui traînait.
Je l'ai corrigé en tuant le processus gpg-agent:
$ ps aux | grep gpg-agent
user 76882 0.0 0.0 4297004 996 ?? Ss 11:51AM 0:00.02 gpg-agent --homedir /Users/user/.gnupg --use-standard-socket --daemon
$ kill 76882