Enigmail fragt nicht nach der pgp-Passphrase, sagt aber, dass kein Schlüssel verfügbar ist

8

Das Entschlüsseln von E-Mails mit Enigmail in Thunderbird funktioniert nicht mehr. Das liegt daran, dass ich nicht die Möglichkeit habe, meine Passphrase einzugeben. Ein Formular, das mich dazu auffordert, wurde früher angezeigt. Jetzt ist es nicht mehr und ich erhalte die folgende Nachricht:

Fehler - Es wurde kein passender privater / geheimer Schlüssel zum Entschlüsseln der Nachricht gefunden. Klicken Sie auf die Schaltfläche "Details", um weitere Informationen zu erhalten

Der private Schlüssel ist jedoch seitdem verfügbar

gpg -d Desktop/mail.eml     

lässt das Formular erscheinen. Nachdem ich meine Passphrase eingegeben habe, kann ich die entschlüsselte Mail im Terminal lesen.

Ein weiterer Hinweis auf ein Problem mit den Passphrasen erschien, als ich heute neue Schlüssel erstellte. Ich konnte kein Sperrzertifikat erstellen, da keine Passphrase festgelegt war. Was wiederum nicht wahr ist.

Das Problem ist mir am Montag, den 31. August, zum ersten Mal aufgefallen.

Ich habe ein bisschen im Internet nachgesehen und dann folgendes gemacht:

  1. Stellen Sie sicher, dass eine Instanz von gpg-agent ausgeführt wird:

    gpg-agent -v
    

    kehrt zurück

    gpg-agent: gpg-agent running and available
    

    Inhalt der .gnupg / gpg-agent.conf:

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

  2. Gehe zu dconf Editor desktop->gnome->crypto->cacheund setze gpg-cache-ttlauf0

  3. Thunderbird Enigmail->Clear Saved Passphrases gibt einen Enigmail Alert mit den Worten:

    Sie verwenden gpg-agent für die Passphrasenbehandlung. Das Löschen der Passphrase ist daher in Enigmail nicht möglich.

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

  4. Machen Sie gpg-agentmein Passwort vergessen:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys Löschen Sie alle Schlüssel und importieren Sie sie erneut

Keine dieser Listen machte einen Unterschied für das Problem. Ich frage mich, wie ich Enigmail dazu bringen kann, erneut nach meiner Passphrase zu fragen.

Danke im Voraus!
Bronk

Bearbeiten

  1. Das Entfernen /etc/xdg/autostart/gnome-keyring-gpg.desktophat nichts gebracht.
  2. Das Entfernen seahorsehat nichts gebracht.
  3. Verwenden von decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
Bronk
quelle
Installieren Sie pinentry-gtk2auf Ubuntu mit Unity
Natim
Ich habe auch dieses Problem, aber seltsamerweise kann ich meine eigenen E-Mails signieren, aber es gibt dieselbe Nachricht, wenn ich versuche, mit meinem Pubkey signierte Nachrichten zu entschlüsseln.
Geremia

Antworten:

7

Versuchen Sie Folgendes : https://www.enigmail.net/support/gnupg2_issues.php In meinem Fall muss ich eine grafische Version von pinentry (pinentry-qt4-Paket) installieren.

"Beheben von Problemen mit GnuPG 2.x und gpg-agent

Hinweis GnuPG 2.x benötigt einen "Agenten", um Passphrasen zu verarbeiten. Standardmäßig wird dies von gpg-agent durchgeführt, es gibt jedoch auch andere Tools, die eine Teilmenge seiner Funktionalität implementieren. Diese Anweisungen gelten nur für GPG-Agenten. Wenn Sie einen Agenten wie Gnome-Keyring, Seahorse-Agent oder den KDE Wallet Manager verwenden, gelten diese Anweisungen nicht. Häufigstes Problem

Symptome

Das häufigste Problem ist, dass gpg-agent (ein Teil von GnuPG) pinentry (das Tool zum Abfragen Ihrer Passphrase) nicht starten kann. Enigmail würde Nachrichten anzeigen wie:

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

Analysieren

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.

Wie man es repariert

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
quelle
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Karl Richter
Das letzte Bit sagt "Wenn gpg-agent pinentry immer noch nicht über Enigmail starten kann, dann ..." - aber wenn pinentry korrekt gestartet wird, aber die Entschlüsselung immer noch nicht funktioniert, hilft die Anleitung hier nicht ...
nerdoc
1

Ich hatte das gleiche Problem, fand aber, dass das Töten von gpg-agent ein Workround war.

(Aus dem Quellcode habe ich herausgefunden, dass Sie die Enigmail-Protokollierung aktivieren können, indem Sie die Datei "defaults / settings / enigmail.js" irgendwo unter ~ / .thunderbird bearbeiten und die Eigenschaft "extensions.enigmail.logDirectory" auf "/ tmp" setzen Die Protokolldatei "/tmp/enigdbug.txt" zeigte dann den vollständigen gpg-Befehl an, den enigmail ausführte, und endete mit "--use-agent". Ich führte diesen gpg-Befehl über die Befehlszeile aus und gab ihm eine verschlüsselte E-Mail-Nachricht beschwerte sich mit der Fehlermeldung "gpg: Problem mit dem Agenten: Kein PINentry". Durch das googeln nach dieser Fehlermeldung wurde der Vorschlag zum Töten des gpg-Agenten aufgedeckt. In der Zwischenzeit reibt sich die NSA die Hände vor Freude darüber, dass die Benutzererfahrung der PKI-Verschlüsselung ist so Müll.)

Graeme
quelle
Ich habe das gleiche Problem wie das OP. Perverserweise führt das Ausführen des genauen Befehls in enigdbug.txt zu perfekten Ergebnissen. : \
Joel Cross
Hat hier nicht geholfen. Obwohl, gpg -d message.emlhat das gleiche Problem: gpg: public key decryption failed: No passphrase given- ohne mich nach einer Passphrase zu fragen
Nerdoc
1

Ich hatte ein ähnliches Problem. Thunderbird bat immer wieder darum, das Passwort meines Schlüssels einzugeben, und der Gnome-Schlüsselring erinnerte sich nicht daran, obwohl ich darum gebeten hatte. Das Problem war, dass gpg-agentdas in meiner Sitzung nicht lief. Das Problem verschwand, als ich es in der aktuellen Sitzung manuell startete mit:

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

Um das Problem dauerhaft zu lösen, müssen Sie sicherstellen, dass der Agent in Ihrer Sitzung ausgeführt wird: 1. Überprüfen Sie, ob Sie über die folgende Datei verfügen /etc/X11/Xsession.d/90gpg-agent. Meins sieht so aus:

  : ${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. Überprüfen Sie, ob Sie die Datei ~/.gnupg/gpg.confmit mindestens der folgenden Zeile haben:

    use-agent
    

Wenn nicht, können Sie es mit dem folgenden Befehl hinzufügen:

echo "use-agent" >>  ~/.gnupg/gpg.conf 
user5950
quelle
use-agentwird in OpenGPG 2.1 nicht mehr benötigt - der Agent wird auf jeden Fall verwendet.
Nerdoc
0

Habe den gleichen Fehler Fehler über Pinentry. Am Ende stellte ich fest, dass der GPG-Agent die falsche Pinentry verwendete. Lösen Sie das Problem, indem Sie die richtige Pinentry festlegen, indem Sie ~ / .gnupg / gpg-agent.conf bearbeiten und die folgende Zeile hinzufügen

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

Die Standardeinstellung für das System, auf dem ich arbeite, war pinentry-x11 (eine unternehmensweite Installation, die eine Vielzahl von Fenstermanagern ermöglicht), die für gnome3 nicht funktionierte. - Man muss also sicherstellen, dass der GPG-Agent den richtigen Pinentry für den tatsächlich verwendeten Fenstermanager verwendet.

Carsten König
quelle
0

In meinem Fall hatte ich nur keine pinentryWerkzeuge außer pinentry-curses(Befehlszeile mit Zeigerunterstützung). Installieren Sie in Fedora einen dieser Passphrasen- / PIN-Eingabedialoge:

  • pinentry-qt.x86_64 basierend auf Qt4;
  • pinentry-gtk.x86_64 basierend auf GTK +;
  • pinentry-emacs.x86_64 für Emacs;
  • pinentry-gnome3.x86_64 für GNOME 3.

Ich habe das GNOME 3- pinentryPaket verwendet.

David
quelle
0

Wählen Sie in Thunderbird die Nachricht aus, klicken Sie auf den Hamburger, erweitern Sie das Enigmail-Menü und wählen Sie Entschlüsseln / Überprüfen. Sie erhalten eine Passwortabfrage, nach der die Nachricht entschlüsselt wird.

Herr Falsch
quelle
Macht keinen Unterschied ...
Nerdoc
Könntest Du das erläutern? Erhalten Sie keine Passwortabfrage oder wird die Nachricht nicht entschlüsselt?
Mr. Wrong
0

Ich hatte ein ähnliches Problem! Nach dem Debuggen des GPG-Agenten mit:

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

Ich fand heraus, dass zwischen Enigmail und GPG etwas kaputt war und es wurde nie nach einer Passphrase gefragt. Aber in dem Fall, dass die Passphrase vorinstalliert war, funktionierte alles perfekt.

In meinem Fall das Problem, was das, in der Vergangenheit habe ich die folgende Option in der ~ / .gnupg / gpg.conf erzwungen

pinentry-mode loopback

Dies hat den Prozess unterbrochen. Sie können den Befehl überprüfen, den Enigmail ausführt, indem Sie den Expertenmodus in Enigmail und dann unter "Debugging-Optionen -> Konsole anzeigen" aktivieren.

Kommentiert und alles hat funktioniert.

Alex
quelle