Я использую enigmail уже больше года без проблем, и сегодня это не работает.
Я обнаружил следующий интересный факт:
gpg --decrypt something.gpg # this works
gpg2 --decrypt something.gpg # this fails
Так что что-то не работает с gpg версии 2 на моей машине.
Это привело меня к тому, что:
gpg --list-secret-keys # reads from ~/.gnupg/secring.gpg
gpg2 --list-secret-keys # reads from ~/.gnupg/pubring.gpg (pubring?!)
Кажется, это корень проблемы ... конечно, gpg2
не могу найти секретный ключ, потому что он ищет в неправильном файле.
Как я мог gpg2
потерпеть неудачу, когда все gpg
работает нормально? Я не вижу никаких опций, чтобы указать, откуда секретные ключи читаются.
У кого-нибудь есть идеи?
Ответ на @grawity :
Спасибо, я ценю вашу помощь. Я побежал strace
, и я вижу, о чем ты говоришь.
Однако даже после того, как gpg2 --import ...
я не вижу разницы в поведении. Я могу заставить его работать, только если я перезагружаюсь (без запуска gpg-agent), запускаю gpg2 --import ...
и запускаю gpg2 --decrypt ...
. После этой последовательности thunderbird + enigmail также ведет себя хорошо. Однако примерно через 15 минут (я думаю, пароль, который я ввел для расшифровки, истек), затем gpg-agent
возвращается к своему старому поведению. Эта последовательность повторяется.
Итак, вот некоторые результаты, если это поможет прояснить ситуацию:
вывод gpg2 -K
:
/home/<username>/.gnupg/pubring.gpg
---------------------------------
sec rsa4096/AAAAAAAA <date> [SC]
uid [ultimate] <description of me>
ssb rsa4096/BBBBBBBB <date> [E]
вывод gpg-connect-agent
> keyinfo --list
S KEYINFO <keygrip associated with AAAAAAAA> D - - - P - - -
S KEYINFO <keygrip associated with BBBBBBBB> D - - - P - - -
OK
вывод gpg2 -v -r <my email> -e testfile
gpg: using PGP trust model
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: This key belongs to us
gpg: reading from 'testfile'
gpg: writing to 'testfile.gpg'
gpg: RSA/AES256 encrypted for: "BBBBBBBB <description of me>"
вывод gpg2 -v -d testfile.gpg
gpg: public key is BBBBBBBB
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: encrypted with 4096-bit RSA key, ID BBBBBBBB, created <date>
"<description of me>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key
gpg-agent
, и программа pinentry должна быть установлена на pinentry-gtk-2
. До этого было установлено pinentry-gnome3
, что существовало в моей системе, но не работало. Пришлось вручную установить pinentry-gtk-2
.