Enigmail no pide una frase de contraseña pgp pero dice que no hay clave disponible

8

descifrar correos electrónicos con enigmail en thunderbird ya no funciona. Es porque no tengo la oportunidad de ingresar mi frase de contraseña, un formulario que me pedía hacerlo solía aparecer, ahora no lo es y recibo este mensaje:

Error: no se encontró una clave privada / secreta coincidente para descifrar el mensaje; haga clic en el botón 'Detalles' para más información

Sin embargo, la clave privada está disponible, ya que

gpg -d Desktop/mail.eml     

hace que aparezca el formulario. Después de completar mi frase de contraseña, puedo leer el correo descifrado dentro de la terminal.

Otra pista para un problema con las frases de contraseña apareció cuando creé nuevas claves hoy. No pude crear un certificado de revocación porque no había una frase de contraseña establecida. Lo cual, nuevamente, no es cierto.

Noté el problema por primera vez el lunes 31 de agosto.

Revisé Internet un poco y luego hice lo siguiente:

  1. Asegúrese de que se esté ejecutando una instancia de gpg-agent:

    gpg-agent -v
    

    devoluciones

    gpg-agent: gpg-agent running and available
    

    Contenido de .gnupg / gpg-agent.conf:

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

  2. Ir dconf Editor desktop->gnome->crypto->cachey configurar gpg-cache-ttla0

  3. Thunderbird Enigmail->Clear Saved Passphrases da una alerta de Enigmail que dice:

    Estás utilizando gpg-agent para el manejo de frases de contraseña. Por lo tanto, no es posible borrar la frase de contraseña desde Enigmail.

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

  4. Haz gpg-agentolvidar mi frase de contraseña:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys eliminar todas las claves y volver a importarlas

Nada de esa lista hizo ninguna diferencia en el problema. Me pregunto, ¿cómo hago para que Enigmail solicite mi frase de contraseña nuevamente?

¡Gracias por adelantado!
Bronk

Editar

  1. Eliminar /etc/xdg/autostart/gnome-keyring-gpg.desktopno hizo nada.
  2. Eliminar seahorseno hizo nada.
  3. Utilizando decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
Bronk
fuente
Instalar pinentry-gtk2en Ubuntu con Unity
Natim
También tengo este problema, pero curiosamente puedo firmar mis propios correos electrónicos, pero me da tu mismo mensaje cuando intento descifrar mensajes firmados con mi clave pública.
Geremia

Respuestas:

7

Pruebe esto: https://www.enigmail.net/support/gnupg2_issues.php En mi caso, necesito instalar una versión gráfica de pinentry (paquete pinentry-qt4).

"Resolviendo problemas con GnuPG 2.xy gpg-agent

Nota GnuPG 2.x requiere un "agente" para manejar las frases de contraseña. Por defecto, esto lo hace gpg-agent, pero hay otras herramientas que implementan un subconjunto de su funcionalidad. Estas instrucciones son solo para gpg-agent. Si usa un agente como gnome-keyring, seahorse-agent o KDE Wallet Manager, estas instrucciones no se aplican. Problema mas comun

Síntomas

El problema más común es que gpg-agent (una parte de GnuPG) no puede iniciar pinentry (la herramienta utilizada para consultar su frase de contraseña). Enigmail mostraría mensajes como:

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

Cómo analizar

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.

Como arreglarlo

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."
usuario462453
fuente
Si bien esto puede responder teóricamente a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Karl Richter
El último bit dice "Si gpg-agent aún no puede iniciar la pinentry desde Enigmail, entonces ...", pero si la pinentry se inicia correctamente, pero el descifrado aún no funciona, la guía no ayuda aquí ...
nerdoc
1

Tuve el mismo problema, pero descubrí que matar a gpg-agent era un problema.

(Del código fuente descubrí que puede habilitar el registro enigmail editando el archivo "defaults /ferences / enigmail.js" en algún lugar debajo de ~ / .thunderbird, estableciendo la propiedad "extensiones.enigmail.logDirectory" en "/ tmp". El archivo de registro "/tmp/enigdbug.txt" mostraba el comando gpg completo que estaba ejecutando enigmail, que terminaba con "--use-agent". Ejecuté ese comando gpg desde la línea de comandos y le envié un mensaje de correo electrónico cifrado. se quejó con el mensaje de error "gpg: problema con el agente: Sin PIN". Buscar en Google para ese mensaje de error apareció la sugerencia de matar al agente gpg. Mientras tanto, la NSA se frota las manos con alegría porque la experiencia del usuario del cifrado PKI es así que basura)

Graeme
fuente
Tengo el mismo problema que el OP. Perversamente, ejecutar el comando exacto que se encuentra en enigdbug.txt produce resultados perfectos. : \
Joel Cross
No ayudó aquí. Aunque, tengo gpg -d message.emlel mismo problema: gpg: public key decryption failed: No passphrase given- sin pedirme una frase de contraseña
nerdoc
1

Tuve un problema similar. Thunderbird pedía una y otra vez que ingresara la contraseña de mi clave y el llavero Gnome no lo recordaría, aunque se lo pedí. El problema era que eso gpg-agentno se estaba ejecutando en mi sesión. El problema desapareció cuando lo inicié manualmente en la sesión actual con:

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

Para resolver el problema permanentemente, debe asegurarse de que el agente se esté ejecutando en su sesión: 1. Verifique que tenga el siguiente archivo /etc/X11/Xsession.d/90gpg-agent. El mío se ve así:

  : ${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. Comprueba que tienes el archivo ~/.gnupg/gpg.conf, con al menos la siguiente línea:

    use-agent
    

Si no, puede agregarlo con el siguiente comando:

echo "use-agent" >>  ~/.gnupg/gpg.conf 
usuario5950
fuente
use-agentya no es necesario en OpenGPG 2.1: el agente se utiliza en cualquier caso.
nerdoc
0

Obtuve el mismo error de error sobre pinentry. Al final, descubrí que el gpg-agent estaba usando la pinentry incorrecta. Lo resolvió configurando la pinentry correcta editando ~ / .gnupg / gpg-agent.conf y agregando la siguiente línea

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

El valor predeterminado para el sistema en el que estoy trabajando fue pinentry-x11 (es una instalación de toda la compañía que permite una variedad de administradores de ventanas), que no funcionó para gnome3. - Por lo tanto, uno debe asegurarse de que el agente gpg esté utilizando la pinentry correcta para el administrador de ventanas en uso.

Carsten König
fuente
0

En mi caso, era solo que no tenía ninguna pinentryherramienta excepto pinentry-curses(línea de comando con soporte de puntero). Entonces, en Fedora, instale cualquiera de estos cuadros de diálogo de entrada de frase de contraseña / PIN:

  • pinentry-qt.x86_64 basado en Qt4;
  • pinentry-gtk.x86_64 basado en GTK +;
  • pinentry-emacs.x86_64 para emacs;
  • pinentry-gnome3.x86_64 para GNOME 3.

Usé el pinentrypaquete GNOME 3 .

David
fuente
0

En thunderbird, seleccione el mensaje, haga clic en la hamburguesa, expanda el menú Enigmail y seleccione descifrar / verificar. Recibirá una solicitud de contraseña y luego se descifrará el mensaje.

Señor incorrecto
fuente
No hace ninguna diferencia ...
nerdoc
¿Puedes aclarar? ¿No recibe la solicitud de contraseña o el mensaje no está descifrado?
Mr. Wrong
0

¡Tuve un problema similar! Después de la depuración del agente gpg realizada con:

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

Descubrí que algo estaba roto entre enigmail y gpg y nunca pidió una frase de contraseña. Pero en el caso de que la frase de contraseña se haya cargado previamente, todo funcionó a la perfección.

En mi caso, el problema es que, en el pasado, forcé la opción de seguir en ~ / .gnupg / gpg.conf

pinentry-mode loopback

Esto rompió el proceso. Puede verificar el comando que se está ejecutando enigmail habilitando el modo experto en Enigmail y luego en "Opciones de depuración -> Ver consola"

Comentó y todo funcionó.

Alex
fuente