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

8

le décryptage des e-mails 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 apparaît, maintenant ce n'est pas le cas et je reçois ce message:

Erreur - aucune clé privée / secrète correspondante n'a été trouvée pour déchiffrer le message; cliquez sur le bouton «Détails» pour plus d'informations

La clé privée est cependant 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 phrases secrètes est apparu lorsque j'ai créé de nouvelles clés aujourd'hui. Je n'ai pas pu créer de certificat de révocation car aucun mot de passe n'est défini. Ce qui, encore une fois, n'est pas vrai.

J'ai remarqué le problème pour la première fois le lundi 31 août.

J'ai vérifié Internet un peu, 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
    

    Retour

    gpg-agent: gpg-agent running and available
    

    Contenu de .gnupg / gpg-agent.conf:

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

  2. Accédez à dconf Editor desktop->gnome->crypto->cacheet définissez gpg-cache-ttlsur0

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

    Vous utilisez gpg-agent pour la gestion des phrases secrètes. Il n'est donc pas possible d'effacer la phrase secrète depuis Enigmail.

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

  4. Faites gpg-agentoublier ma phrase secrète:

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

Aucune de ces listes n'a fait de différence dans le problème. Je me demande, comment puis-je demander à Enigmail de demander à nouveau ma phrase secrète?

Merci d'avance!
Bronk

Éditer

  1. Le retrait /etc/xdg/autostart/gnome-keyring-gpg.desktopn'a rien fait.
  2. Le retrait seahorsen'a rien fait.
  3. En utilisant decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
Bronk
la source
Installer pinentry-gtk2sur Ubuntu avec Unity
Natim
J'ai aussi ce problème, mais bizarrement, je peux signer mes propres e-mails, mais cela donne votre même message lorsque j'essaie de décrypter les messages signés avec ma clé de pub.
Geremia

Réponses:

7

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

"Résolution des 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 il existe d'autres outils implémentant un sous-ensemble de ses fonctionnalités. Ces instructions ne concernent que gpg-agent. Si vous utilisez un agent comme 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 comme:

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."
user462453
la source
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Karl Richter
Le dernier bit dit "Si gpg-agent ne peut toujours pas lancer Pinentry depuis Enigmail, alors ..." - mais si Pinentry est lancé correctement, mais le déchiffrement ne fonctionne toujours pas, le guide n'aide pas ici ...
nerdoc
1

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

(À partir du code source, j'ai constaté que vous pouvez activer la journalisation enigmail en modifiant le fichier "defaults / preferences / enigmail.js" quelque part sous ~ / .thunderbird, en définissant la propriété "extensions.enigmail.logDirectory" sur "/ tmp". le fichier journal "/tmp/enigdbug.txt" a ensuite montré la commande gpg complète qu'enigmail était en cours d'exécution, se terminant par "--use-agent". J'ai exécuté cette commande gpg à partir de la ligne de commande, en lui fournissant un e-mail chiffré. Il s'est plaint du message d'erreur "gpg: problème avec l'agent: pas de code PIN". La recherche de ce message d'erreur sur Google a provoqué la suggestion de tuer l'agent gpg. Pendant ce temps, la NSA se frotte les mains de joie que l'expérience utilisateur du cryptage PKI soit donc des ordures.)

Graeme
la source
J'ai le même problème que l'OP. Perversement, l'exécution de la commande exacte trouvée dans enigdbug.txt donne des résultats parfaits. : \
Joel Cross
N'a pas aidé ici. Bien, gpg -d message.emlchapeau le même problème: gpg: public key decryption failed: No passphrase given- sans me demander un mot de passe
nerdoc
1

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 ai demandé. Le problème était que cela gpg-agentne 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 disposez du 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 disposez du 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 
user5950
la source
use-agentn'est plus nécessaire dans OpenGPG 2.1 - l'agent est utilisé dans tous les cas.
nerdoc
0

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

La valeur par défaut pour le système sur lequel je travaille était pinentry-x11 (c'est une installation à l'échelle de l'entreprise qui permet une variété de gestionnaires de fenêtres), qui ne fonctionnait pas pour gnome3. - Il faut donc s'assurer que l'agent gpg utilise le bon pinentry pour le gestionnaire de fenêtres en cours d'utilisation.

Carsten König
la source
0

Dans mon cas, c'était juste que je n'avais pas d' pinentryoutils à part pinentry-curses(ligne de commande avec prise en charge du pointeur). Donc, dans Fedora, installez l'une de ces boîtes de dialogue de saisie de mot de passe / PIN:

  • 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 pinentrypaquet GNOME 3 .

David
la source
0

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

Mr. Wrong
la source
Ça ne fait aucune différence ...
nerdoc
Pouvez-vous clarifier? Vous n'obtenez pas l'invite de mot de passe ou le message n'est-il pas décrypté?
M. Wrong
0

J'avais un problème similaire! Suite au 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 qu'est-ce que, dans le passé, j'ai forcé l'option de suivi dans le ~ / .gnupg / gpg.conf

pinentry-mode loopback

Cela a interrompu le processus. Vous pouvez vérifier la commande exécutée par enigmail en activant le mode expert dans Enigmail puis dans "Options de débogage -> Afficher la console"

Commenté et tout a fonctionné.

Alex
la source