web-dev-qa-db-fra.com

Enigmail ne demande pas la phrase secrète pgp mais dit qu'aucune clé n'est disponible

le décryptage des emails avec enigmail dans Thunderbird ne fonctionne plus. C’est parce que je n’ai pas la chance de saisir ma phrase secrète, un formulaire me demandant de le faire, j’avais l'habitude de le faire apparaître, maintenant ce n'est pas le cas et je reçois ce message:

Erreur - aucune clé privée/secrète correspondante trouvée pour décrypter le message; cliquez sur le bouton 'Détails' pour plus d'informations

La clé privée est disponible, car

gpg -d Desktop/mail.eml     

fait apparaître le formulaire. Après avoir rempli ma phrase secrète, je peux lire le courrier déchiffré dans le terminal.

Un autre indice d'un problème avec les mots de passe est apparu lorsque j'ai créé de nouvelles clés aujourd'hui. Je ne pouvais pas créer de certificat de révocation car il n'y avait pas de phrase secrète définie. Ce qui, encore une fois, n'est pas vrai.

J'ai d'abord remarqué le problème le lundi 31 août.

J'ai un peu consulté Internet, puis j'ai fait ce qui suit:

  1. Assurez-vous qu'une instance de gpg-agent est en cours d'exécution:

    gpg-agent -v
    

    résultats

    gpg-agent: gpg-agent running and available
    

    Contenu de .gnupg/gpg-agent.conf:

    default-cache-ttl 0
    max-cache-ttl 0

  2. Allez à dconf Editor desktop->gnome->crypto->cache et réglez gpg-cache-ttl à 0

  3. Thunderbird Enigmail->Clear Saved Passphrases donne une alerte Enigmail disant:

    Vous utilisez gpg-agent pour la gestion de la phrase secrète. Effacer la phrase secrète n’est donc pas possible à partir d’Enigmail.

    Thunderbird Enigmail->Preferences->Basic Remember passphrase for 0 minutes of idle time

  4. Faites gpg-agent oublier ma phrase secrète:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys supprimer toutes les clés et les réimporter

Aucune de cette liste n'a fait aucune différence dans le problème. Je me demande comment faire en sorte qu'Enigmail demande à nouveau ma phrase secrète?

Merci d'avance!
Bronk

Éditer

  1. Supprimer /etc/xdg/autostart/gnome-keyring-gpg.desktop n'a rien fait.
  2. Supprimer seahorse n'a rien fait.
  3. Utilisation de decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
8
Bronk

Essayez ceci: https://www.enigmail.net/support/gnupg2_issues.php Dans mon cas, j'ai besoin d'installer une version graphique de pinentry (paquet pinentry-qt4).

"Résolution de problèmes avec GnuPG 2.x et gpg-agent

Remarque GnuPG 2.x nécessite un "agent" pour gérer les phrases secrètes. Par défaut, cela est fait par gpg-agent, mais d'autres outils implémentent un sous-ensemble de ses fonctionnalités. Ces instructions ne concernent que gpg-agent. Si vous utilisez un agent tel que gnome-keyring, seahorse-agent ou KDE Wallet Manager, ces instructions ne s'appliquent pas. Problème le plus courant

Symptômes

Le problème le plus courant est que gpg-agent (une partie de GnuPG) ne peut pas lancer pinentry (l'outil utilisé pour interroger votre phrase secrète). Enigmail afficherait des messages tels que:

when reading messages:
Error - no matching private/secret key found to decrypt message; click on 'Details' button for more information

when sending messages:
- Send operation aborted. Error - encryption command failed
- Send operation aborted. Key 0x....... not found or not valid. The (sub-)key might have expired

Comment analyser

Try sending a signed and unencrypted message to yourself.
Check the output in the Enimgail log: go to menu Enigmail > Debugging Options > View Log.
Search for the following text: parseErrorOutput: status message. You will probably find this message several times. Check what follows below.
If the message says something like "no pinentry", "problem with the agent", "Invalid IPC response" or "problem with gpg-agent", then there is something wrong with your gpg-agent and/or pinentry setup.

Comment le réparer

Execute the following script from a terminal to find out if a graphical version of pinentry is used:

pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT

You should get a graphical window with a confirmation message "Hello World". If a "window" is opened within your terminal window then pinentry is text-based, which does not work with Enigmail. To fix this, ensure that a graphical version of pinentry is installed. On Linux/Unix systems, these would typically be pinentry-qt/pinentry-qt4 or pinentry-gtk/pinentry-gtk2, and on Mac OS X pinentry-mac. Rename the existing pinentry file to "pinentry-text" or similar, and create a symlink from pinentry-qt, pinentry-qt4, pinentry-gtk, pinentry-gtk2 or pinentry-mac to pinentry. Then restart your PC.

If the above does not help, check the contents of $HOME/.gnupg/gpg-agent.conf. Make sure that there is a configuration entry pinentry-program containing the full path to a graphical version of pinentry as above. E.g.:

pinentry-program /usr/local/bin/pinentry-gtk

Then save the file and restart your PC.

If you still can't access your key, then execute the following script from a terminal:

gpg-connect-agent <<EOT
GETINFO version
EOT

The output should be something like the text below, where 2.0.26 represents the agent version number. The version number should match your gpg version number:

D 2.0.26
OK

If you get an error message like "ERR 280 not implemented" then you don't use gpg-agent, but one of the alternatives like gnome-keyring. We recommend you switch to gpg-agent by disabling your current agent. See e.g. askubuntu for how to disable gnome-keyring or how to disable KDE wallet.

If you get a useful result from above, then execute the following script from a terminal:

gpg-connect-agent <<EOT
GET_CONFIRMATION Hello
EOT

Pinentry should now open as a graphical window (just like above), with the difference to the step above that this instance of pinentry was launched from gpg-agent. If this is successful, then GnuPG 2 should work correctly in Enigmail.

If gpg-agent still cannot launch pinentry from Enigmail, then you need to start debugging gpg-agent. Execute the following commands from a terminal:

killall gpg-agent
gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

This will start gpg-agent from the command line, open a new Shell and print the debug output to that Shell. If the command succeeded, you will see somehting like:
gpg-agent[76979]: gpg-agent 2.0.26 started
Leave the terminal window untouched, start Thunderbird and try to use Enigmail. As you'll try to access gpg-agent, you will see the output in your terminal window. If gpg-agent cannot start pinentry successfully, you will see something like this:

gpg-agent[76993]: starting a new PIN Entry
gpg-agent[76993]: chan_19 <- ERR 67109133 can't exec `/usr/bin/pinentry': No such file or directory
gpg-agent[76993]: chan_19 -> BYE
gpg-agent[76993]: can't connect to the PIN entry module: IPC connect call failed
gpg-agent[76993]: command get_passphrase failed: No pinentry

Press Ctrl+D in the terminal to end the debugging session. The bold line should tell you the reason for the error (in the example above, pinentry cannot be found). Try to fix the error and repeat the test."
7
user462453

J'ai eu le même problème, mais j'ai constaté que tuer gpg-agent était une solution de contournement.

(D'après le code source, il est possible d'activer la journalisation enigmail en modifiant le fichier "defaults/preferences/enigmail.js" quelque part dans ~/.Thunderbird, en définissant la propriété "extensions.enigmail.logDirectory" sur "/ tmp". Le fichier journal "/tmp/enigdbug.txt" montrait ensuite la commande gpg complète exécutée par enigmail, et se terminait par "--use-agent". J'ai exécuté cette commande gpg à partir de la ligne de commande, lui fournissant un message électronique chiffré. s'est plaint du message d'erreur "gpg: problème avec l'agent: pas de code PIN". Googler pour ce message d'erreur a suggéré de tuer l'agent gpg. Pendant ce temps, la NSA se frotte les mains avec joie L’expérience utilisateur du chiffrement de l’ICP est tellement foutue.)

1
Graeme

J'avais un problème similaire. Thunderbird demandait encore et encore de mettre le mot de passe de ma clé et le trousseau de clés Gnome ne s'en souviendrait pas, bien que je le lui aie demandé. Le problème était que gpg-agent ne fonctionnait pas dans ma session. Le problème a disparu lorsque je l'ai démarré manuellement dans la session en cours avec:

gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

Pour résoudre définitivement le problème, vous devez vous assurer que l'agent est en cours d'exécution dans votre session: 1. Vérifiez que vous avez le fichier suivant /etc/X11/Xsession.d/90gpg-agent. Le mien ressemble à ceci:

  : ${GNUPGHOME=$HOME/.gnupg}

  GPGAGENT=/usr/bin/gpg-agent
  PID_FILE="$GNUPGHOME/gpg-agent-info-$(hostname)"

  if grep -qs '^[[:space:]]*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" &&
     test -x $GPGAGENT &&
     { test -z "$GPG_AGENT_INFO" || ! $GPGAGENT 2>/dev/null; }; then

     if [ -r "$PID_FILE" ]; then
         . "$PID_FILE"
     fi

     # Invoking gpg-agent with no arguments exits successfully if the agent
     # is already running as pointed by $GPG_AGENT_INFO
     if ! $GPGAGENT 2>/dev/null; then
         STARTUP="$GPGAGENT --daemon --sh --write-env-file=$PID_FILE $STARTUP"
     fi
  fi
  1. Vérifiez que vous avez le fichier ~/.gnupg/gpg.conf, avec au moins la ligne suivante:

    use-agent
    

Sinon, vous pouvez l'ajouter avec la commande suivante:

echo "use-agent" >>  ~/.gnupg/gpg.conf 
1
user5950

Dans Thunderbird, sélectionnez le message, cliquez sur le hamburger, développez le menu Enigmail et sélectionnez décrypter/vérifier. Vous recevrez une invite de mot de passe après laquelle le message sera déchiffré.

0
Mr. Wrong

J'avais un problème similaire! Après le débogage de gpg-agent effectué avec:

gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

J'ai découvert que quelque chose était cassé entre enigmail et gpg et il n'a jamais demandé de phrase secrète. Mais dans le cas où la phrase secrète était pré-chargée, tout fonctionnait parfaitement.

Dans mon cas, le problème est que dans le passé, j'ai forcé l'option de suivi dans le fichier ~/.gnupg/gpg.conf.

pinentry-mode loopback

Cela a brisé le processus. Vous pouvez vérifier la commande en cours d'exécution d'énigmail pour activer le mode expert dans Enigmail, puis dans "Options de débogage -> View Console".

Commenté et tout a fonctionné.

0
Alex

Vous avez la même erreur d'erreur sur pinentry. À la fin, j'ai compris que l'agent gpg utilisait le mauvais pinentry. Résolu en définissant le bon pinentry en éditant ~/.gnupg/gpg-agent.conf et en ajoutant la ligne suivante

pinentry-program /usr/bin/pinentry-gtk-2

Le système par défaut pour lequel je travaille était pinentry-x11 (il s’agit d’une installation à l’échelle de la société qui autorise divers gestionnaires de fenêtres), ce qui n’a pas fonctionné pour gnome3. - Il faut donc s’assurer que l’agent gpg utilise le bon pinentry pour le gestionnaire de fenêtres utilisé.

0
Carsten König

Dans mon cas, c'était simplement que je n'avais aucun outil pinentry à l'exception de pinentry-curses (ligne de commande avec prise en charge du pointeur). Donc, dans Fedora, installez l’une des boîtes de dialogue suivantes: mot de passe/mot de passe:

  • pinentry-qt.x86_64 basé sur Qt4;
  • pinentry-gtk.x86_64 basé sur GTK +;
  • pinentry-emacs.x86_64 pour emacs;
  • pinentry-gnome3.x86_64 pour GNOME 3.

J'ai utilisé le paquet GNOME 3 pinentry.

0
David