Enigmail не запитує парольну фразу pgp, але не говорить про відсутність ключа


8

розшифрування електронних листів загадковою поштою в thunderbird більше не працює. Це тому, що я не отримую можливості пробити свою парольну фразу - форму, яка вимагає, щоб я це зробив раніше, щоб з'явитись, зараз це не так, і я отримую це повідомлення:

Помилка - для розшифрування повідомлення не знайдено відповідного приватного / секретного ключа; натисніть кнопку "Деталі" для отримання додаткової інформації

Приватний ключ доступний, однак

gpg -d Desktop/mail.eml     

змушує форму з’являтися. Після заповнення моєї парольної фрази я можу прочитати розшифровану пошту в терміналі.

Ще один натяк на проблему із паролями з'явився, коли я сьогодні створював нові ключі. Я не міг створити сертифікат відкликання, оскільки не було встановлено парольних фраз. Що, знову ж таки, неправда.

Я вперше помітив проблему в понеділок, 31 серпня.

Я трохи перевірив Інтернет, а потім зробив наступне:

  1. Переконайтеся, що примірник gpg-агента працює:

    gpg-agent -v
    

    повертає

    gpg-agent: gpg-agent running and available
    

    Вміст .gnupg / gpg-agent.conf:

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

  2. Перейти до dconf Editor desktop->gnome->crypto->cacheі встановити gpg-cache-ttlв0

  3. Thunderbird Enigmail->Clear Saved Passphrases дає повідомлення Enigmail:

    Ви використовуєте gpg-агент для обробки парольних фраз. Очищення парольної фрази неможливо зсередини Enigmail.

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

  4. Зробіть gpg-agentзабути свою ключову фразу:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys видаліть усі ключі та повторно імпортуйте їх

Жоден із цього списку не вплинув на проблему. Цікаво, як я змушую Enigmail знову запитати свою парольну фразу?

Спасибі заздалегідь!
Бронк

Редагувати

  1. Видалення /etc/xdg/autostart/gnome-keyring-gpg.desktopнічого не зробило.
  2. Видалення seahorseнічого не зробило.
  3. Використання decrypt-file:

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

Встановити pinentry-gtk2на Ubuntu з Unity
Natim

У мене є і ця проблема, але як не дивно, я можу підписати власні електронні листи, але воно дає ваше те саме повідомлення, коли я намагаюся розшифровувати повідомлення, підписані моїм пабі.
Геремія

Відповіді:


7

Спробуйте це: https://www.enigmail.net/support/gnupg2_isissue.php У моєму випадку мені потрібно встановити графічну версію пінгентрі (пакет pinentry-qt4).

"Вирішення проблем з GnuPG 2.x та gpg-агентом

Примітка. GnuPG 2.x вимагає "агента" для обробки парольних фраз. За замовчуванням це робиться gpg-agent, але є й інші інструменти, що реалізують підмножину його функціональності. Ці інструкції призначені лише для gpg-агента. Якщо ви використовуєте такий агент, як gnome-keyring, seahorse-agent або менеджер гаманців KDE, ці інструкції не застосовуються. Найпоширеніша проблема

Симптоми

Найпоширеніша проблема полягає в тому, що gpg-агент (частина GnuPG) не може запускати пинтерні (інструмент, який використовується для запиту вашої парольної фрази). Enigmail відображатиме повідомлення типу:

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

Як аналізувати

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.

Як це виправити

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

Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Карл Ріхтер

Останній біт говорить: "Якщо gpg-агент все ще не може запустити пилентрі від Enigmail, то ..." - але якщо ПІД запущено правильно, але дешифрування все ще не працює, посібник тут не допомагає ...
nerdoc

1

У мене була така ж проблема, але я виявив, що вбивство gpg-агента було робочим середовищем.

(З вихідного коду я виявив, що можна ввімкнути ведення enigmail журналу, відредагувавши файл "за замовчуванням / налаштуваннями / enigmail.js" десь під ~ / .thunderbird, встановивши "властивість" extensions.enigmail.logDirectory "на" / tmp ". файл журналу "/tmp/enigdbug.txt" потім показав повну команду gpg, що виконується enigmail, закінчуючи "--use-agent". Я запустив цю команду gpg з командного рядка, подаючи їй зашифроване повідомлення електронної пошти. Поскаржився на повідомлення про помилку "gpg: проблема з агентом: немає PINentry". Гуглінг за це повідомлення про помилку виявив пропозицію вбити gpg-агент. Тим часом, NSA втирає руки в радість, що досвід користувача шифрування PKI є так сміття.)


У мене така ж проблема, як у ОП. Зрозуміло, виконання точної команди, знайденої у enigdbug.txt, дає ідеальні результати. : \
Джоель Крос

Тут не допомогли. Хоча, gpg -d message.emlкапелюх та ж проблема: gpg: public key decryption failed: No passphrase given- не запитуючи мене про парольну фразу
nerdoc

1

У мене була схожа проблема. Thunderbird знову і знову просив ввести пароль мого ключа і Gnome keyring не пам’ятав цього, хоча я і просив його. Проблема полягала в тому, що gpg-agentв моєму сеансі не працювало. Проблема зникла, коли я вручну запустив її в поточному сеансі з:

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

Щоб вирішити проблему назавжди, ви повинні переконатися, що агент працює у вашому сеансі: 1. Перевірте, чи є у вас такий файл /etc/X11/Xsession.d/90gpg-agent. Моя виглядає так:

  : ${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. Перевірте, чи є у вас файл ~/.gnupg/gpg.conf, принаймні з наступного рядка:

    use-agent
    

Якщо ні, ви можете додати її за допомогою наступної команди:

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

use-agentбільше не потрібен OpenGPG 2.1 - агент використовується в будь-якому випадку.
nerdoc

0

Отримала таку ж помилку щодо помилки. Врешті-решт я зрозумів, що gpg-агент використовує неправильну пилоту. Вирішив це, встановивши потрібну піктограму, відредагувавши ~ / .gnupg / gpg-agent.conf та додавши наступний рядок

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

За замовчуванням для системи, в якій я працюю, був pinentry-x11 (це компанія, що широко використовує установку, яка дозволяє різноманітним віконним менеджерам), яка не працювала для gnome3. - Отже, потрібно переконатися, що gpg-агент використовує правильну програму для фактичного використовуваного менеджера вікон.


0

У моєму випадку я просто не мав ніяких pinentryінструментів, крім pinentry-curses(командного рядка з підтримкою вказівника). Тож у Fedora встановіть будь-який із цих діалогових діалогових вікон / PIN-кодів:

  • pinentry-qt.x86_64 на основі Qt4;
  • pinentry-gtk.x86_64 на основі GTK +;
  • pinentry-emacs.x86_64 для emacs;
  • pinentry-gnome3.x86_64 для GNOME 3

Я використовував pinentryпакет GNOME 3 .


0

У громовержці виберіть повідомлення, натисніть на гамбургер, розгорніть меню Enigmail та виберіть розшифрувати / підтвердити. Ви отримаєте запит на пароль, після якого повідомлення буде розшифровано.


Це не має ніякого значення ...
nerdoc

Ви можете уточнити? Ви не отримаєте запит на введення пароля чи повідомлення не розшифроване?
Містер Неправильний

0

У мене була подібна проблема! Після налагодження gpg-агента виконано:

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

Я дізнався, що між enigmail та gpg щось було порушено, і це ніколи не вимагало проходити фразу. Але у випадку, якщо парольну фразу було попередньо завантажено, все працювало чудово.

У моєму випадку проблема в тому, що в минулому я змусив наступний варіант у ~ / .gnupg / gpg.conf

pinentry-mode loopback

Це порушило процес. Ви можете перевірити команду про те, що enigmail працює, увімкнувши режим експертів у Enigmail, а потім у "Параметри налагодження -> Переглянути консоль"

Прокоментував і все спрацювало.


0

У мене була така ж проблема з Ubuntu Budgie 18.04. Чомусь pinentry-gnome3не відображалося діалогове вікно.

Я міг би вирішити проблему, встановивши, pinentry-fltkа також вибравши її в альтернативних варіантах оновлення:

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

У показаному діалоговому вікні виберіть 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.