Enigmail tidak meminta frasa sandi pgp tetapi mengatakan tidak ada kunci yang tersedia

8

mendekripsi email dengan enigmail di thunderbird tidak berfungsi lagi. Itu karena saya tidak mendapatkan kesempatan untuk memasukkan frasa sandi saya, formulir yang meminta saya untuk melakukannya, muncul sekarang, sekarang tidak dan saya menerima pesan ini:

Kesalahan - tidak ditemukan kunci pribadi / rahasia yang cocok untuk mendekripsi pesan; klik tombol 'Detail' untuk informasi lebih lanjut

Kunci pribadi tersedia, sejak

gpg -d Desktop/mail.eml     

membuat formulir muncul. Setelah mengisi frasa sandi saya, saya bisa membaca surat dekripsi di terminal.

Petunjuk lain untuk masalah frasa sandi muncul ketika saya membuat kunci baru hari ini. Saya tidak dapat membuat sertifikat pencabutan karena tidak ada frasa sandi yang ditetapkan. Sekali lagi, itu tidak benar.

Saya pertama kali memperhatikan masalah pada hari Senin, 31 Agustus.

Saya memeriksa internet sebentar dan kemudian melakukan hal berikut:

  1. Pastikan instance gpg-agent berjalan:

    gpg-agent -v
    

    kembali

    gpg-agent: gpg-agent running and available
    

    Konten .gnupg / gpg-agent.conf:

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

  2. Pergi ke dconf Editor desktop->gnome->crypto->cachedan set gpg-cache-ttlke0

  3. Thunderbird Enigmail->Clear Saved Passphrases memberikan Peringatan Enigmail yang mengatakan:

    Anda menggunakan agen gpg untuk penanganan frasa sandi. Oleh karena itu, menghapus frasa sandi tidak dimungkinkan dari dalam Enigmail.

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

  4. Membuat gpg-agentlupa kata sandi saya:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys hapus semua kunci dan masukkan kembali

Tak satu pun dari daftar itu yang membuat perbedaan pada masalah. Saya bertanya-tanya, bagaimana cara membuat Enigmail meminta frasa sandi saya lagi?

Terima kasih sebelumnya!
Bronk

Edit

  1. Menghapus /etc/xdg/autostart/gnome-keyring-gpg.desktoptidak melakukan apa-apa.
  2. Menghapus seahorsetidak melakukan apa-apa.
  3. Menggunakan decrypt-file:

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    
Bronk
sumber
Instal pinentry-gtk2di Ubuntu dengan Unity
Natim
Saya memiliki masalah ini juga, tetapi anehnya saya dapat menandatangani email saya sendiri, tetapi memberikan pesan yang sama ketika saya mencoba mendekripsi pesan yang ditandatangani dengan pubkey saya.
Geremia

Jawaban:

7

Coba ini: https://www.enigmail.net/support/gnupg2_issues.php Dalam kasus saya, saya perlu menginstal versi grafis pinentry (paket pinentry-qt4).

"Mengatasi masalah dengan GnuPG 2.x dan gpg-agent

Catatan GnuPG 2.x membutuhkan "agen" untuk menangani frasa sandi. Secara default ini dilakukan oleh gpg-agent, tetapi ada alat lain yang mengimplementasikan subset dari fungsinya. Instruksi ini hanya untuk agen gpg. Jika Anda menggunakan agen seperti gnome-keyring, seahorse-agent atau KDE Wallet Manager, maka instruksi ini tidak berlaku. Masalah paling umum

Gejala

Masalah yang paling umum adalah bahwa gpg-agent (bagian dari GnuPG) tidak dapat meluncurkan pinentry (alat yang digunakan untuk menanyakan frasa sandi Anda). Enigmail akan menampilkan pesan seperti:

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

Cara Menganalisa

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.

Bagaimana memperbaikinya

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."
pengguna462453
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Karl Richter
Bit terakhir mengatakan "Jika gpg-agent masih tidak dapat meluncurkan pinentry dari Enigmail, maka ..." - tetapi JIKA pinentry diluncurkan dengan benar, tetapi dekripsi tidak bekerja, panduan ini tidak membantu di sini ...
nerdoc
1

Saya memiliki masalah yang sama, tetapi menemukan bahwa membunuh agen gpg adalah cara kerja.

(Dari kode sumber saya menemukan bahwa Anda dapat mengaktifkan pencatatan enigmail dengan mengedit file "default / preferences / enigmail.js" di suatu tempat di bawah ~ / .thunderbird, mengatur properti "extensions.enigmail.logDirectory" menjadi "/ tmp". The log file "/tmp/enigdbug.txt" kemudian menunjukkan perintah gpg lengkap yang sedang dijalankan oleh enigmail, diakhiri dengan "--use-agent". Saya menjalankan perintah gpg dari baris perintah, memberinya pesan email terenkripsi. mengeluh dengan pesan kesalahan "gpg: masalah dengan agen: Tidak ada PINentry". Googling untuk pesan kesalahan itu muncul saran untuk membunuh agen gpg. Sementara itu, NSA menggosok tangannya dengan gembira bahwa pengalaman pengguna enkripsi PKI adalah jadi sampah.)

Graeme
sumber
Saya memiliki masalah yang sama dengan OP. Sebaliknya, menjalankan perintah persis yang ditemukan di enigdbug.txt menghasilkan hasil yang sempurna. : \
Joel Cross
Tidak membantu di sini. Meskipun, gpg -d message.emlhat masalah yang sama: gpg: public key decryption failed: No passphrase given- tanpa meminta saya untuk passphrase
nerdoc
1

Saya punya masalah serupa. Thunderbird berulang kali diminta untuk memasukkan kata sandi kunci saya dan Gnome keyring tidak akan mengingatnya, meskipun saya memintanya. Masalahnya adalah, gpg-agentitu tidak berjalan di sesi saya. Masalahnya hilang ketika saya memulainya secara manual di sesi saat ini dengan:

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

Untuk menyelesaikan masalah secara permanen, Anda harus memastikan, bahwa agen berjalan di sesi Anda: 1. Periksa Anda memiliki file berikut /etc/X11/Xsession.d/90gpg-agent. Milik saya terlihat seperti ini:

  : ${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. Periksa Anda memiliki file ~/.gnupg/gpg.conf, dengan setidaknya baris berikut:

    use-agent
    

Jika tidak, Anda dapat menambahkannya dengan perintah berikut:

echo "use-agent" >>  ~/.gnupg/gpg.conf 
pengguna5950
sumber
use-agenttidak diperlukan lagi di OpenGPG 2.1 - agen digunakan dalam hal apa pun.
nerdoc
0

Mendapat kesalahan kesalahan yang sama tentang pinentry. Pada akhirnya, saya menemukan bahwa agen gpg menggunakan pinentry yang salah. Mengatasinya dengan mengatur pinentry kanan dengan mengedit ~ / .gnupg / gpg-agent.conf dan menambahkan baris berikut

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

Default untuk sistem yang saya gunakan adalah pinentry-x11 (ini adalah instalasi perusahaan yang memungkinkan berbagai manajer jendela), yang tidak berfungsi untuk gnome3. - Jadi kita harus memastikan bahwa agen gpg menggunakan pinentry yang benar untuk window manager yang sebenarnya digunakan.

Carsten König
sumber
0

Dalam kasus saya itu hanya karena saya tidak memiliki pinentryalat kecuali untuk pinentry-curses(baris perintah dengan dukungan pointer). Jadi di Fedora, instal salah satu dari dialog passphrase / entri PIN ini:

  • pinentry-qt.x86_64 berdasarkan Qt4;
  • pinentry-gtk.x86_64 berdasarkan GTK +;
  • pinentry-emacs.x86_64 untuk emacs;
  • pinentry-gnome3.x86_64 untuk GNOME 3.

Saya menggunakan pinentrypaket GNOME 3 .

David
sumber
0

Di thunderbird, pilih pesan, klik hamburger, perluas menu Enigmail dan pilih dekripsi / verifikasi. Anda akan mendapatkan prompt kata sandi setelah mana pesan akan didekripsi.

Tuan salah
sumber
Tidak ada bedanya ...
nerdoc
Bisakah Anda mengklarifikasi? Apakah Anda tidak mendapatkan prompt kata sandi, atau apakah pesan itu tidak didekripsi?
Tn. Salah
0

Saya punya masalah yang sama! Mengikuti debug gpg-agent yang dilakukan dengan:

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

Saya menemukan bahwa ada sesuatu yang terputus antara enigmail dan gpg dan tidak pernah meminta kata sandi. Tetapi dalam kasus frasa sandi telah dimuat sebelumnya semua bekerja dengan sempurna.

Dalam kasus saya masalah apa itu, di masa lalu, saya memaksa opsi ikuti di ~ / .gnupg / gpg.conf

pinentry-mode loopback

Ini mematahkan proses. Anda dapat memeriksa perintah yang menjalankan enigmail mengaktifkan mode ahli di Enigmail dan kemudian di "Opsi Debugging -> Lihat Konsol"

Berkomentar dan semuanya bekerja.

Alex
sumber