Enigmail nie pyta o hasło pgp, ale nie podaje klucza


8

deszyfrowanie wiadomości e-mail za pomocą enigmail w Thunderbirdie już nie działa. To dlatego, że nie mam szansy na wybranie hasła, formularz, który mnie prosił, pojawiał się, teraz nie jest i otrzymuję ten komunikat:

Błąd - nie znaleziono pasującego klucza prywatnego / tajnego do odszyfrowania wiadomości; kliknij przycisk „Szczegóły”, aby uzyskać więcej informacji

Od tego czasu klucz prywatny jest dostępny

gpg -d Desktop/mail.eml     

wyświetla formularz. Po wypełnieniu mojego hasła mogę odczytać odszyfrowaną pocztę w terminalu.

Kolejna wskazówka dotycząca problemu z hasłami pojawiła się, gdy dzisiaj utworzyłem nowe klucze. Nie mogłem utworzyć certyfikatu odwołania, ponieważ nie ustawiono hasła. Co znowu nie jest prawdą.

Po raz pierwszy zauważyłem problem w poniedziałek, 31 sierpnia.

Trochę sprawdziłem Internet, a następnie wykonałem następujące czynności:

  1. Upewnij się, że instancja gpg-agent jest uruchomiona:

    gpg-agent -v
    

    zwroty

    gpg-agent: gpg-agent running and available
    

    Zawartość pliku .gnupg / gpg-agent.conf:

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

  2. Przejdź do dconf Editor desktop->gnome->crypto->cachei ustaw gpg-cache-ttlna0

  3. Thunderbird Enigmail->Clear Saved Passphrases daje ostrzeżenie Enigmail, mówiąc:

    Używasz gpg-agent do obsługi haseł. Usunięcie hasła nie jest zatem możliwe z poziomu Enigmail.

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

  4. Dokonaj gpg-agentzapomnę hasło:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys usuń wszystkie klucze i ponownie je zaimportuj

Żadna z tej listy nie miała żadnego wpływu na problem. Zastanawiam się, jak zmusić Enigmail do ponownego poproszenia o moje hasło?

Z góry dziękuję!
Bronk

Edytować

  1. Usunięcie /etc/xdg/autostart/gnome-keyring-gpg.desktopnic nie zrobiło.
  2. Usunięcie seahorsenic nie zrobiło.
  3. Używanie decrypt-file:

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

Zainstaluj pinentry-gtk2na Ubuntu z Unity
Natim,

Mam również ten problem, ale dziwnie mogę podpisywać własne e-maile, ale daje to tę samą wiadomość, gdy próbuję odszyfrować wiadomości podpisane za pomocą mojego klucza publicznego.
Geremia

Odpowiedzi:


7

Spróbuj tego: https://www.enigmail.net/support/gnupg2_issues.php W moim przypadku potrzebuję zainstalować graficzną wersję pinentry (pakiet pinentry-qt4).

„Rozwiązywanie problemów z GnuPG 2.xi gpg-agent

Uwaga GnuPG 2.x wymaga „agenta” do obsługi haseł. Domyślnie robi to gpg-agent, ale istnieją inne narzędzia implementujące podzbiór jego funkcjonalności. Te instrukcje dotyczą tylko gpg-agent. Jeśli używasz agenta, takiego jak gnome-keyring, konik morski lub Menedżer portfeli KDE, te instrukcje nie mają zastosowania. Najczęstszy problem

Objawy

Najczęstszym problemem jest to, że gpg-agent (część GnuPG) nie może uruchomić pinentry (narzędzia używanego do zapytania hasła). Enigmail wyświetlałby wiadomości takie jak:

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

Jak analizować

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.

Jak to naprawić

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."

Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Karl Richter

Ostatni bit mówi „Jeśli gpg-agent nadal nie może uruchomić pinentry z Enigmail, to ...” - ale jeśli pinentry jest uruchomione poprawnie, ale deszyfrowanie nadal nie działa, przewodnik tutaj nie pomaga ...
nerdoc

1

Miałem ten sam problem, ale odkryłem, że zabicie agenta gpg było rozwiązaniem.

(Z kodu źródłowego stwierdziłem, że możesz włączyć rejestrowanie enigmail, edytując plik „defaults / preferences / enigmail.js” gdzieś w ~ / .thunderbird, ustawiając właściwość „extensions.enigmail.logDirectory” na „/ tmp”. plik dziennika „/tmp/enigdbug.txt” pokazał następnie pełne polecenie gpg uruchomione przez enigmail, kończące się na „--use-agent". Uruchomiłem to polecenie gpg z wiersza poleceń, podając mu zaszyfrowaną wiadomość e-mail. To poskarżył się na komunikat o błędzie „gpg: problem z agentem: Brak PINentry”. W Google dla tego komunikatu o błędzie pojawiła się sugestia zabicia agenta gpg. Tymczasem NSA zaciera ręce z radości, że doświadczenie użytkownika w zakresie szyfrowania PKI jest takie śmieci.)


Mam ten sam problem co OP. Odwrotnie, uruchomienie dokładnej komendy z enigdbug.txt daje doskonałe wyniki. : \
Joel Cross

Nie pomogłem tutaj. Chociaż nie mam gpg -d message.emltego samego problemu: gpg: public key decryption failed: No passphrase given- nie pytając mnie o hasło
nerdoc

1

Miałem podobny problem. Thunderbird ciągle prosił o podanie hasła mojego klucza, a brelok Gnome nie pamiętałby tego, chociaż o to prosiłem. Problem polegał na tym, że gpg-agentnie działało to w mojej sesji. Problem zniknął, gdy ręcznie uruchomiłem go w bieżącej sesji z:

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

Aby trwale rozwiązać problem, musisz upewnić się, że agent działa w Twojej sesji: 1. Sprawdź, czy masz następujący plik /etc/X11/Xsession.d/90gpg-agent. Mój wygląda następująco:

  : ${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. Sprawdź, czy masz plik ~/.gnupg/gpg.confzawierający co najmniej następujący wiersz:

    use-agent
    

Jeśli nie, możesz dodać go za pomocą następującego polecenia:

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

use-agentnie jest już potrzebny w OpenGPG 2.1 - agent jest używany w każdym przypadku.
nerdoc,

0

Wystąpił ten sam błąd błędu dotyczący pinentry. Na koniec zorientowałem się, że gpg-agent używa niewłaściwej pinentry. Rozwiązano go, ustawiając odpowiednią pinentry, edytując ~ / .gnupg / gpg-agent.conf i dodając następujący wiersz

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

Domyślny system, w którym pracuję, to pinentry-x11 (jest to instalacja dla całej firmy, która pozwala na różne menedżery okien), co nie działało w przypadku gnome3. - Trzeba więc upewnić się, że gpg-agent używa poprawnej pinentry dla aktualnie używanego menedżera okien.


0

W moim przypadku po prostu nie miałem żadnych pinentrynarzędzi oprócz pinentry-curses(linia poleceń z obsługą wskaźnika). Więc w Fedorze zainstaluj dowolne z poniższych okien dialogowych hasła / PIN:

  • pinentry-qt.x86_64 na podstawie Qt4;
  • pinentry-gtk.x86_64 oparty na GTK +;
  • pinentry-emacs.x86_64 dla emacsa;
  • pinentry-gnome3.x86_64 dla GNOME 3.

Użyłem pinentrypakietu GNOME 3 .


0

W thunderbird wybierz wiadomość, kliknij hamburgera, rozwiń menu Enigmail i wybierz odszyfruj / zweryfikuj. Otrzymasz monit o hasło, po którym wiadomość zostanie odszyfrowana.


Nie robi żadnej różnicy ...
nerdoc,

Możesz wyjaśnić? Nie pojawia się monit o hasło lub wiadomość nie jest odszyfrowana?
Pan Wrong

0

Miałem podobny problem! Po debugowaniu gpg-agent wykonanym za pomocą:

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

Dowiedziałem się, że coś zostało zerwane między enigmail a gpg i nigdy nie prosiło o hasło. Ale w przypadku, gdy hasło zostało wstępnie załadowane, wszystko działało idealnie.

W moim przypadku problemem jest to, że w przeszłości wymuszałem opcję follow w ~ / .gnupg / gpg.conf

pinentry-mode loopback

To zepsuło proces. Możesz sprawdzić polecenie uruchomione przez enigmail, włączając tryb eksperta w Enigmail, a następnie w „Opcjach debugowania -> Wyświetl konsolę”

Skomentował i wszystko działało.


0

Miałem ten sam problem z Ubuntu Budgie 18.04. Z jakiegoś powodu pinentry-gnome3nie wyświetlało się okno dialogowe.

Mógłbym rozwiązać problem, instalując pinentry-fltki wybierając go w alternatywnych wersjach:

sudo apt-get install pinentry-fltk
sudo update-alternatives --config pinentry

W wyświetlonym oknie dialogowym wybierz usr/bin/pinentry-fltk

There are 2 choices for the alternative pinentry (providing /usr/bin/pinentry).

  Selection    Path                      Priority   Status
------------------------------------------------------------
  0            /usr/bin/pinentry-gnome3   90        auto mode
* 1            /usr/bin/pinentry-fltk     70        manual mode
  2            /usr/bin/pinentry-gnome3   90        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.