O Enigmail não pede a senha do pgp, mas diz que não há chave disponível

8

descriptografar e-mails com o enigmail no thunderbird não funciona mais. É porque eu não tenho a chance de digitar minha senha, um formulário pedindo para que eu o faça aparecer, agora não é e estou recebendo esta mensagem:

Erro - nenhuma chave privada / secreta correspondente encontrada para descriptografar a mensagem; clique no botão 'Detalhes' para obter mais informações

A chave privada está disponível, pois

gpg -d Desktop/mail.eml     

faz o formulário aparecer. Depois de preencher minha senha, posso ler as mensagens descriptografadas no terminal.

Outra dica para um problema com as senhas apareceu quando eu criei novas chaves hoje. Não foi possível criar um certificado de revogação porque não havia uma senha definida. O que, novamente, não é verdade.

Percebi o problema pela primeira vez na segunda-feira, 31 de agosto.

Eu verifiquei a Internet um pouco e depois fiz o seguinte:

  1. Verifique se uma instância do gpg-agent está em execução:

    gpg-agent -v
    

    retorna

    gpg-agent: gpg-agent running and available
    

    Conteúdo de .gnupg / gpg-agent.conf:

    cache-ttl padrão 0 cache-ttl padrão
    0

  2. Vá para dconf Editor desktop->gnome->crypto->cachee defina gpg-cache-ttlcomo0

  3. Thunderbird Enigmail->Clear Saved Passphrases emite um alerta do Enigmail dizendo:

    Você está usando gpg-agent para manipulação de senha. A limpeza da senha não é, portanto, possível no Enigmail.

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

  4. Faça gpg-agentesquecer minha senha:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys exclua todas as chaves e reimporte-as

Nenhuma parte dessa lista fez diferença no problema. Eu me pergunto, como faço para o Enigmail pedir minha senha novamente?

Desde já, obrigado!
Bronk

Editar

  1. A remoção /etc/xdg/autostart/gnome-keyring-gpg.desktopnão fez nada.
  2. A remoção seahorsenão fez nada.
  3. Usando decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
Bronk
fonte
Instale pinentry-gtk2no Ubuntu com Unity
Natim
Também tenho esse problema, mas, estranhamente, consigo assinar meus próprios e-mails, mas ele transmite a mesma mensagem quando tento descriptografar as mensagens assinadas com meu pubkey.
Geremia 21/01

Respostas:

7

Tente o seguinte: https://www.enigmail.net/support/gnupg2_issues.php No meu caso, preciso instalar uma versão gráfica do pinentry (pacote pinentry-qt4).

"Resolvendo problemas com o GnuPG 2.xe o gpg-agent

Nota O GnuPG 2.x requer um "agente" para lidar com senhas. Por padrão, isso é feito pelo gpg-agent, mas existem outras ferramentas que implementam um subconjunto de sua funcionalidade. Estas instruções são apenas para gpg-agent. Se você usa um agente como o gnome-keyring, o seahorse-agent ou o KDE Wallet Manager, essas instruções não se aplicam. Problema mais comum

Sintomas

O problema mais comum é que o gpg-agent (uma parte do GnuPG) não pode iniciar o pinentry (a ferramenta usada para consultar sua senha). O Enigmail exibia mensagens 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

Como analisar

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 corrigi-lo

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
fonte
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Karl Richter
A última parte diz "Se o gpg-agent ainda não conseguir iniciar o pinentry a partir do Enigmail, então ..." - mas se o pinentry for iniciado corretamente, mas a descriptografia ainda não funcionar, o guia não ajudará aqui ...
nerdoc
1

Eu tinha o mesmo problema, mas descobri que matar o gpg-agent era uma solução.

(No código-fonte, descobri que você pode ativar o log do enigmail editando o arquivo "defaults / preferências / enigmail.js" em algum lugar em ~ / .thunderbird, definindo a propriedade "extensions.enigmail.logDirectory" como "/ tmp". O arquivo de log "/tmp/enigdbug.txt" mostrou o comando gpg completo que o enigmail estava executando, terminando com "--use-agent". Executei o comando gpg na linha de comando, alimentando uma mensagem de email criptografada. reclamou a mensagem de erro "gpg: problema com o agente: sem PINentry". Pesquisando por essa mensagem de erro, surgiu a sugestão de matar o gpg-agent. Enquanto isso, a NSA esfrega as mãos com satisfação que a experiência do usuário de criptografia PKI é tão lixo.)

Graeme
fonte
Eu tenho o mesmo problema que o OP. Perversamente, executar o comando exato encontrado em enigdbug.txt gera resultados perfeitos. : \
Joel Cross
Não ajudou aqui. Embora, gpg -d message.emlhat o mesmo problema: gpg: public key decryption failed: No passphrase given- sem me pedir uma senha
nerdoc
1

Eu tive um problema parecido. O Thunderbird estava pedindo repetidamente para inserir a senha da minha chave e o chaveiro do Gnome não se lembrava dela, embora eu pedisse. O problema era que isso gpg-agentnão estava sendo executado na minha sessão. O problema desapareceu quando eu o iniciei manualmente na sessão atual com:

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

Para resolver o problema permanentemente, você deve garantir que o agente esteja executando em sua sessão: 1. Verifique se você possui o seguinte arquivo /etc/X11/Xsession.d/90gpg-agent. O meu fica assim:

  : ${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. Verifique se você possui o arquivo ~/.gnupg/gpg.conf, com pelo menos a seguinte linha:

    use-agent
    

Caso contrário, você pode adicioná-lo com o seguinte comando:

echo "use-agent" >>  ~/.gnupg/gpg.conf 
user5950
fonte
use-agentnão é mais necessário no OpenGPG 2.1 - o agente é usado em qualquer caso.
Nerdoc 11/07/19
0

Obteve o mesmo erro de erro sobre pinentry. No final, eu descobri que o gpg-agent estava usando o pinentry errado. Resolva-o definindo o pinentry correto editando ~ / .gnupg / gpg-agent.conf e adicionando a seguinte linha

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

O padrão para o sistema em que estou trabalhando era o pinentry-x11 (é uma instalação em toda a empresa que permite uma variedade de gerenciadores de janelas), que não funcionava no gnome3. - Então é preciso garantir que o gpg-agent esteja usando a pinentry correta para o gerenciador de janelas real em uso.

Carsten König
fonte
0

No meu caso, era apenas que eu não tinha nenhuma pinentryferramenta, exceto pinentry-curses(linha de comando com suporte a ponteiro). Portanto, no Fedora, instale qualquer uma dessas caixas de diálogo de senha / senha:

  • pinentry-qt.x86_64 baseado em Qt4;
  • pinentry-gtk.x86_64 baseado no GTK +;
  • pinentry-emacs.x86_64 para emacs;
  • pinentry-gnome3.x86_64 para o GNOME 3.

Eu usei o pinentrypacote GNOME 3 .

David
fonte
0

No Thunderbird, selecione a mensagem, clique no hambúrguer, expanda o menu Enigmail e selecione descriptografar / verificar. Você receberá uma solicitação de senha, após a qual a mensagem será descriptografada.

Sr errado
fonte
Não faz nenhuma diferença ...
nerdoc
Você pode esclarecer? Você não recebe a solicitação de senha ou a mensagem não é descriptografada?
errado
0

Eu tive um problema parecido! Após a depuração do gpg-agent feita com:

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

Eu descobri que algo estava quebrado entre enigmail e gpg e nunca pedia uma senha. Mas, no caso de a senha pré-carregada, tudo funcionou perfeitamente.

No meu caso, o problema é que, no passado, forcei a opção follow no ~ / .gnupg / gpg.conf

pinentry-mode loopback

Isso interrompeu o processo. Você pode verificar o comando que o enigmail está executando, habilitando o modo especialista no Enigmail e, em seguida, em "Opções de Depuração -> Exibir Console"

Comentou e tudo funcionou.

Alex
fonte