Enigmail non richiede la passphrase pgp ma non dice alcuna chiave disponibile


8

la decodifica delle e-mail con enigmail in thunderbird non funziona più. È perché non ho la possibilità di inserire la mia passphrase, un modulo che mi chiede di farlo usato per pop-up, ora non lo è e sto ricevendo questo messaggio:

Errore: nessuna chiave privata / segreta corrispondente trovata per decrittografare il messaggio; fare clic sul pulsante "Dettagli" per ulteriori informazioni

Tuttavia, la chiave privata è disponibile da allora

gpg -d Desktop/mail.eml     

fa apparire il modulo. Dopo aver compilato la mia passphrase posso leggere la posta decifrata all'interno del terminale.

Un altro suggerimento per un problema con le passphrase è apparso quando ho creato nuove chiavi oggi. Non è stato possibile creare un certificato di revoca perché non è stata impostata alcuna passphrase. Il che, di nuovo, non è vero.

Ho notato il problema per la prima volta lunedì 31 agosto.

Ho controllato Internet per un po 'e poi ho fatto quanto segue:

  1. Assicurati che sia in esecuzione un'istanza di gpg-agent:

    gpg-agent -v
    

    ritorna

    gpg-agent: gpg-agent running and available
    

    Contenuto di .gnupg / gpg-agent.conf:

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

  2. Vai a dconf Editor desktop->gnome->crypto->cachee imposta gpg-cache-ttlsu0

  3. Thunderbird Enigmail->Clear Saved Passphrases dà un avviso Enigmail che dice:

    Stai usando gpg-agent per la gestione delle passphrase. Pertanto, non è possibile cancellare la passphrase da Enigmail.

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

  4. Fare gpg-agentdimenticare il mio passphrase:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys cancella tutte le chiavi e reimportale

Nessuno di quell'elenco ha fatto alcuna differenza al problema. Mi chiedo come posso ottenere nuovamente da Enigmail la mia passphrase?

Grazie in anticipo!
Bronk

modificare

  1. La rimozione /etc/xdg/autostart/gnome-keyring-gpg.desktopnon ha fatto nulla.
  2. La rimozione seahorsenon ha fatto nulla.
  3. Utilizzando decrypt-file:

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

Installa pinentry-gtk2su Ubuntu con Unity
Natim il

Anch'io ho questo problema, ma stranamente posso firmare le mie e-mail, ma dà il tuo stesso messaggio quando provo a decifrare i messaggi firmati con il mio pubkey.
Geremia,

Risposte:


7

Prova questo: https://www.enigmail.net/support/gnupg2_issues.php Nel mio caso, ho bisogno di installare una versione grafica di pinentry (pacchetto pinentry-qt4).

"Risoluzione dei problemi con GnuPG 2.xe gpg-agent

Nota GnuPG 2.x richiede un "agente" per gestire le passphrase. Di default questo viene fatto da gpg-agent, ma ci sono altri strumenti che implementano un sottoinsieme delle sue funzionalità. Queste istruzioni sono solo per gpg-agent. Se usi un agente come gnome-keyring, seahorse-agent o KDE Wallet Manager, queste istruzioni non si applicano. Problema più comune

Sintomi

Il problema più comune è che gpg-agent (una parte di GnuPG) non può avviare il pinentry (lo strumento usato per interrogare la tua passphrase). Enigmail mostrerebbe messaggi come:

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

Come analizzare

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.

Come sistemarlo

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

Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Karl Richter,

L'ultimo bit dice "Se gpg-agent non riesce ancora ad avviare il pinentry da Enigmail, allora ..." - ma se il pinentry viene avviato correttamente, ma la decodifica non funziona ancora, la guida non aiuta qui ...
nerdoc

1

Ho avuto lo stesso problema, ma ho scoperto che uccidere gpg-agent era una soluzione.

(Dal codice sorgente ho scoperto che è possibile abilitare la registrazione enigmail modificando il file "defaults / preferenze / enigmail.js" da qualche parte sotto ~ / .thunderbird, impostando la proprietà "extensions.enigmail.logDirectory" su "/ tmp". il file di registro "/tmp/enigdbug.txt" mostrava quindi il comando gpg completo che enigmail era in esecuzione, che terminava con "--use-agent". Ho eseguito quel comando gpg dalla riga di comando, fornendo un messaggio di posta elettronica crittografato. si è lamentato del messaggio di errore "gpg: problema con l'agente: nessun PINentry". Cercando su quel messaggio di errore è emerso il suggerimento di uccidere l'agente gpg. Nel frattempo, l'NSA si strofina la gioia che l'esperienza utente della crittografia PKI sia così spazzatura.)


Ho lo stesso problema dell'OP. Perversamente, l'esecuzione del comando esatto trovato in enigdbug.txt produce risultati perfetti. : \
Joel Cross il

Non ha aiutato qui. Anche se, gpg -d message.emlil cappello lo stesso problema: gpg: public key decryption failed: No passphrase given- senza chiedere a me per una frase di accesso
nerdoc

1

Ho avuto un problema simile. Thunderbird mi chiedeva ripetutamente di inserire la password della mia chiave e il portachiavi di Gnome non se lo sarebbe ricordato, anche se l'ho chiesto. Il problema era che gpg-agentnon era in esecuzione nella mia sessione. Il problema è scomparso quando l'ho avviato manualmente nella sessione corrente con:

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

Per risolvere il problema in modo permanente, è necessario assicurarsi che l'agente sia in esecuzione nella sessione: 1. Verificare di disporre del seguente file /etc/X11/Xsession.d/90gpg-agent. Il mio assomiglia a questo:

  : ${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. Verifica di avere il file ~/.gnupg/gpg.conf, con almeno la seguente riga:

    use-agent
    

In caso contrario, è possibile aggiungerlo con il seguente comando:

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

use-agentnon è più necessario in OpenGPG 2.1 - l'agente viene comunque utilizzato.
Nerdoc,

0

Ho avuto lo stesso errore di errore sulla pinentry. Alla fine, ho capito che l'agente gpg stava usando la pinentry sbagliata. Risolto impostando la pinentry corretta modificando ~ / .gnupg / gpg-agent.conf e aggiungendo la seguente riga

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

L'impostazione predefinita per il sistema sul quale sto lavorando era pinentry-x11 (è un'installazione a livello aziendale che consente una varietà di gestori di finestre), che non funzionava con gnome3. - Quindi bisogna assicurarsi che l'agente gpg stia usando la pinentry corretta per l'attuale gestore delle finestre in uso.


0

Nel mio caso era solo che non avevo nessuno pinentrystrumento tranne pinentry-curses(riga di comando con supporto puntatore). Quindi in Fedora installa una di queste finestre di dialogo per l'immissione di passphrase / PIN:

  • pinentry-qt.x86_64 basato su Qt4;
  • pinentry-gtk.x86_64 basato su GTK +;
  • pinentry-emacs.x86_64 per emacs;
  • pinentry-gnome3.x86_64 per GNOME 3.

Ho usato il pinentrypacchetto GNOME 3 .


0

In thunderbird, seleziona il messaggio, fai clic sull'hamburger, espandi il menu di Enigmail e seleziona decodifica / verifica. Riceverai una richiesta di password dopo la quale il messaggio verrà decrittografato.


Non fa alcuna differenza ...
Nerdoc,

Puoi chiarire? Non viene visualizzata la richiesta della password o il messaggio non viene decrittografato?
Mr. Wrong,

0

Ho avuto un problema simile! A seguito del debug di gpg-agent fatto con:

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

Ho scoperto che qualcosa era rotto tra enigmail e gpg e non ha mai richiesto una passphrase. Ma nel caso in cui la passphrase fosse precaricata, tutto ha funzionato perfettamente.

Nel mio caso il problema è quello che, in passato, ho forzato l'opzione follow in ~ / .gnupg / gpg.conf

pinentry-mode loopback

Questo ha interrotto il processo. Puoi controllare il comando che enigmail è in esecuzione abilitando la modalità esperto in Enigmail e poi in "Opzioni di debug -> Visualizza console"

Commentato e tutto ha funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.