PGP Enigmail Проблема, больше не могу расшифровать или подписать мои собственные сообщения
Из-за одного дня мой плагин Enigmail Thunderbird перестал работать, и я больше не могу расшифровывать отправленные мне сообщения, зашифрованные моим открытым ключом. Даже если бы я написал эти сообщения сам.
Каждый раз, когда я пытаюсь расшифровать сообщение, появляется следующая ошибка:
Fehler - Entschlüsselung fehlgeschlagen
Öffentlicher Schlüssel MYKEYCODE zur Überprüfung der Unterschrift benötigt
gpg: Entschlüsselung fehlgeschlagen: Geheimer Schlüssel ist nicht vorhanden
Hinweis: Die Nachricht wurde mit folgenden Benutzer-IDs / Schlüsseln verschlüsselt:
0xMYKEYCODE (Robert Lastname <my.mail@my-uni.de>)
Я использую немецкий Thunderbird, так что вот мой перевод:
Error - Decryption failed
Public Key MYKEYCODE needed to verify signature
gpg: Decryption failed: Secret (private) key not found
Hint: Message was encrypted with the following User-Ids/Keys:
0xMYKEYCODE (Robert Lastname <my.mail@my-uni.de>)
Как может отсутствовать закрытый ключ? Я лично зашифровал сообщение перед отправкой самому себе. Я часами пытаюсь решить эту проблему. Я переустанавливал Enigmail пару раз. Я также переустанавливал GnuPG пару раз. Я удалил все свои ключи и заново импортировал их. Что сводит меня с ума, так это то, что у меня есть другой ноутбук, использующий Enigmail с той же парой открытых и закрытых ключей, и там все работает просто отлично.
Что вызывает у меня подозрение, что 0xMYKEYCODE из сообщения об ошибке отличается от кода моей пары открытый-закрытый ключ в диспетчере ключей, как это может быть?
Большое спасибо заранее и ура, Роберт
РЕДАКТИРОВАТЬ: Может быть, это помогает: я не могу подписать сообщения на компьютере, который не может расшифровать, но я могу подписать на другой машине. Итак, очевидно, Enigmail не может использовать мой закрытый ключ, почему?
РЕДАКТИРОВАТЬ 2: Если я пытаюсь подписать сообщение, оно отказывается с ошибкой "Ошибка - неправильная кодовая фраза". Это заставило меня задуматься, после повторного импорта всех моих ключей меня никогда не просили предоставить фразу-пароль, которая защищает мою пару открытый-закрытый ключ где-нибудь!?
EDIT3: если я вызываю
echo RELOADAGENT | gpg-connect-agent
на ноутбуке, где работает шифрование, он говорит мне, что gpg-connect-agent
не установлен??? Может ли быть так, что на ноутбуке, где он работает, ключи фактически управляются кольцом ключей gnome (несмотря на то, что Enigmail сообщает мне, что они управляются gpg-agent)?
Тем не менее, на ноутбуке, где расшифровка больше не работает, я могу вызвать echo RELOADAGENT | gpg-connect-agent
, Таким образом, gpg заботится и, возможно, создает беспорядок в сочетании с кольцом для ключей гнома?
8 ответов
Итак, я вроде понял это. После настройки useGpgAgent
в false
в конфигурации Thunderbird и нескольких перезапусках плюс обновления системы позже все снова работает.
Я думаю, что это очень неудовлетворительный ответ, потому что я не мог понять, что на самом деле было причиной проблемы. Я могу только догадываться, что gpg-agent не очень хорошо работает с gnome-keyring, а также с менеджером ключей seahorse (очевидно, оба были установлены Ubuntu автоматически, когда я настраивал ОС в первый раз).
У меня была эта проблема на OSX с gpg v2 и я исправил ее, установив рядом с ней gpg v1. Не уверен, применимо ли это к Ubuntu.
В моем случае, установка true для useGpgAgent фактически устранила мою проблему. Thunderbird версии 38.5.1, Enigmail 1.8.2 (20150416-1748), gpg (GnuPG) 2.0.28, libgcrypt 1.6.3.
Хорошо, у меня было очень простое решение для этого. При отправке почты себе они были автоматически зашифрованы. Когда я хотел открыть их, у меня была та же ошибка.
Sidenote: Они были автоматически зашифрованы, поскольку мой почтовый адрес был известен моему почтовому клиенту и ему был назначен ключ.
Решение:
Снимите флажок "никогда не спрашивать пароль" в настройках enigmail. А затем снова откройте письмо и введите правильную фразу-пароль.
Дополнительная информация: я думал, что enigmail с thunderbird был глуп, поэтому я использовал вместо этого командную строку и попытался выяснить свой пароль, расшифровав там сообщение с помощью gpg --decrypt <Message>
, Как ни странно, когда я набрал правильный пароль, он не показал мне зашифрованную почту. Однако в Thunderbird это было тогда.
Вам не хватает закрытых ключей. Переустановка GnuPG и Enigmail, вероятно, не поможет, так как это проблема с вашим кольцом для ключей GnuPG.
Кажется, как-то поврежден ваш закрытый брелок. Восстановить рабочую версию ~/.gnupg
из ваших резервных копий. Если у вас его нет, (начните делать это сейчас и) получите ключи с другого компьютера, либо скопировав весь ~/.gnupg
папку или путем экспорта закрытого ключа:
gpg --export-secret-keys [keyid] > secret-keys.pgp
и импортируем его на компьютер со сломанными ключами:
gpg --import secret-keys.pgp
Возможно, вам придется удалить ключ раньше.
Наличие точно такой же проблемы в Ubuntu 14.10/GNOME 3.12.
Для меня для useGpgAgent уже установлено значение false (фактически, у меня не было установленного GpgAgent до сих пор), и моя система полностью обновлена, поэтому я боюсь, что решение smCaterpillar мне не поможет.
Я удалил открытый и закрытый ключи из.gnupg, установил для useGpgAgent и useGpgKeytools соответствующие значения по умолчанию, отключил расширение интеграции ключей GNOME thunderbird, и я надеюсь, что аналогично smCaterpillar, несколько перезапусков помогут.
РЕДАКТИРОВАТЬ: Мне пришло в голову "очистить сохраненную фразу-пароль" из меню Enigmail. Как ни странно, Thunderbird/Enigmail сообщает, что не может удалить пароль, потому что я использую GPG Agent для управления паролями. Однако для useGpgAgent установлено значение false, а агент GPG не работает.
Я вошел в "Редактировать правила для каждого получателя" и создал правило, которое не будет шифровать и подписывать электронные письма, которые я отправляю себе.
Для писем, которые я не смог расшифровать, я скопировал тела писем в отдельные текстовые файлы.
Затем из каталога, куда я их помещаю, я зашелcat filename.txt | sudo gpg --decrypt
в терминале, чтобы увидеть содержание проблемных писем после предоставления моего перефразирования filename.txt
было заменено на имя каждого файла по очереди.
У меня была та же проблема: Enigmail сказал, что не может найти секретный ключ, но gpg -d
просто работал нормально.
Затем я обнаружил, что я использовал был обычай pinentry-program
определяется в .gnupg/gpg-agent.conf
(в моем случае pinentry-qt4
), которого у меня не было на новой установке. Удаление этой строки или установка pinentry-qt4
решил проблему для меня.
В этом случае сообщение об ошибке enigmail должно быть более конкретным.