Enigmail nie może komunikować się z gpg-agentem

10

Aktualizacja

Począwszy od Ubuntu 16.04, wtyczka działa zgodnie z oczekiwaniami i nie ma potrzeby obniżania wersji zgodnie z sugestią w zaakceptowanej odpowiedzi. Pytanie dotyczyło Ubuntu 15.04 i być może 15.10.


Oryginalny post

Używam Thunderbird + Enigmail od lat. Obecnie używam Thunderbirda 38.5.1, Enigmail w wersji 1.9 (20160223-1641) i GPG 2.0.26 na moim komputerze stacjonarnym (Ubuntu 15.04 64-bit, z Gnome Shell).

Kilka dni temu, po ponad rocznej operacji, Enigmail nagle zaczął narzekać na następujący błąd przy każdej próbie wysłania podpisanego lub zaszyfrowanego e-maila:

GnuPG zgłosił błąd w komunikacji z gpg-agent (komponent GnuPG).

Jest to błąd konfiguracji systemu lub konfiguracji, który uniemożliwia prawidłowe działanie Enigmail i nie może zostać naprawiony automatycznie.

Zdecydowanie zalecamy zapoznanie się z naszą witryną pomocy technicznej pod adresem https://enigmail.net/faq .

Przejrzałem stronę z często zadawanymi pytaniami i wypróbowałem kilka rzeczy, ale nie byłem jeszcze w stanie rozwiązać problemu.

pinentryKomenda działa poprawnie i pokazuje pinentry-qt4okno (nie znaczy oparty na tekście):

pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT

Jednak gpg-agent-connectpolecenie nie powiedzie się:

gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
ERR 280 not implemented

Próbowałem wyłączyć gnome keyring zgodnie z sugestią, ale to też nie działa. (Tak, zrestartowałem system pomiędzy nimi, ale chcę też, aby klucz był włączony jak zwykle.) Próbowałem również eksportować i ponownie importować moje ustawienia Enigmail (tj. $HOME/.gnupg/W międzyczasie zmieniłem nazwę na coś innego), ale tak się stało też nie działa.

Co dziwne, kiedy uruchamiam gpg-agentręcznie z powłoki, a następnie uruchamiam Thunderbirda, wydaje się, że komunikuje się z gpg-agent, jak pokazano poniżej:

gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh
gpg-agent[6469]: enabled debug flags: command cache assuan
gpg-agent[6469]: directory `/home/ray/.gnupg' created
gpg-agent[6469]: directory `/home/ray/.gnupg/private-keys-v1.d' created
gpg-agent[6469]: listening on socket `/home/ray/.gnupg/S.gpg-agent'
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 started
#
# Thunderbird started at this point
#
$ gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 started
gpg-agent[6470]: chan_7 -> OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 <- OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 -> GETINFO pid
gpg-agent[6470]: chan_7 <- GETINFO pid
gpg-agent[6470]: chan_7 -> D 6470
gpg-agent[6470]: chan_7 -> OK
gpg-agent[6470]: chan_6 <- D 6470
gpg-agent[6470]: chan_6 <- OK
gpg-agent[6470]: chan_6 -> BYE
gpg-agent[6470]: chan_7 <- BYE
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated

Jednak nie widzę żadnych danych wyjściowych, jeśli spróbuję wysłać podpisaną i / lub zaszyfrowaną wiadomość e-mail. Pokazuje się to tylko po uruchomieniu Thunderbirda.

Ponadto dodałem /usr/bin/gpg-agent --daemonpolecenie jako aplikację startową w panelu Gnome Startup Applications, ale nie miało to znaczenia.

Wydaje mi się, że zastosowałem regularną aktualizację około 2/23, ale problem nie stał się widoczny, dopóki system nie został zrestartowany 2/24 w tym tygodniu. Niestety nie pamiętam, które pakiety zostały zaktualizowane, ale nie było ich tak wiele. (Zwykle aktualizuję system).

Należy pamiętać, że działało to bez problemów od lat, do około 2 dni temu. (Używam tej konfiguracji w moim domowym komputerze stacjonarnym przez 4 lata + bez problemów, ale mój komputer stacjonarny jest laptopem, a Ubuntu czasami nie działa tak ładnie z nieznanych powodów ...)

Kiedy próbuję otworzyć zaszyfrowane wiadomości e-mail, które otrzymałem (lub zapisałem wersje robocze, które również są zaszyfrowane), gpg-agentpojawia się ten sam komunikat o błędzie , ale odszyfrowuje wiadomość e-mail po zapytaniu o hasło do klucza prywatnego.

P: Jak mogę rozwiązać ten błąd komunikacji, który uniemożliwia mi wysyłanie podpisanych / zaszyfrowanych wiadomości e-mail?

Aby uznać problem za naprawiony, sytuacja musi wrócić do normalnej pracy bez komunikatów o błędach itp.

Z góry dziękuję za wszelką pomoc, która może pomóc rozwiązać ten problem.


Podczas pisania tego posta zauważyłem gpg-agentw terminalu następującą wiadomość od demona:

# ...from previous output above
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated
#
# new/unexpected error message from agent
#
gpg-agent[6470]: can't connect my own socket: IPC connect call failed
gpg-agent[6470]: this process is useless - shutting down
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 stopped

Okazało się to nieoczekiwanie, ponieważ w międzyczasie nie prosiłem Thunderbirda o zrobienie czegoś szczególnego.


Zaktualizowałem z 15.04 -> 15.10 -> 16.04 i mogę potwierdzić, że Thunderbird 38.6 + Enigmail 1.9.1 działa dla mnie normalnie. Dane wyjściowe poleceń są również takie, jakie powinny być:

➜  ~ pinentry <<EOT
heredoc> SETDESC Hello World
heredoc> CONFIRM
heredoc> EOT
OK Pleased to meet you
OK
OK
➜  ~ gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
D 2.1.11
OK
kod_dredd
źródło
Być może powiązane: sourceforge.net/p/enigmail/bugs/575
Socob
@Socob: Gdzie sprawdziłbyś, czy ERROR check_hijackfaktycznie jest emitowany? Często zadawane pytania pojawiają się nieaktualne i nie jestem pewien, gdzie jest już dostępna opcja wyświetlania dziennika debugowania Enigmail.
code_dredd
Niestety nie jestem pewien, właśnie sprawdziłem narzędzie do śledzenia błędów Enigmail i zobaczyłem ten problem na samej górze, który wydaje się, że może on prowadzić do tego problemu. Nawiasem mówiąc, mam ten sam problem co ty (Enigmail daje ten komunikat o błędzie po bardzo długiej pracy bez problemów). Spróbuję się tego pozbyć, kiedy będę miał czas.
Socob
@Socob: Brzmi dobrze. To nie pierwszy raz mam ten problem. Kiedy pierwszy raz spotkałem się z tym problemem, data wymiany mojego komputera była dość bliska, więc zignorowałem go po marnowaniu kilku godzin na naprawę. Tym razem nie mogę tego zignorować i znów spędziłem kilka godzin. Od czasu do czasu będę próbował. Mam nadzieję, że masz więcej szczęścia niż ja.
code_dredd
1
Mam ten sam problem. Enigmail > Debugging Options > View Logujawnia WARNING: The GNOME keyring manager hijacked the GnuPG agent. Jestem więc pewien, że GnomeKeyring jest spokrewniony. echo | gpg2 --signujawnia problem w interfejsie CLI. Niestety wyłączenie gnome-keyring (jako jedyne obejście) nie jest dla mnie opcją.
meisterluk

Odpowiedzi:

5

Chociaż odpowiedź tego drugiego pokazuje tylko, jak rozwiązać go w systemie Debian, podejście jest takie samo:

Obniżanie.

Ponieważ Enigmail opublikował 23 lutego wersję 1.9, a problemy zaczęły się od tego dnia, jedyne trzy rozwiązania to:

  1. Poczekaj, aż Enigmail załatwi sprawę i zainstaluje aktualizację do 1.9.xi przestanie używać szyfrowania, dopóki nie dostarczy aktualizacji
  2. Przekop się i rozwiąż problem samodzielnie (co nie każdy jest w stanie zrobić ze względu na ograniczoną wiedzę o architekturze oprogramowania)
  3. Zmień wersję na 1.8.2, a następnie poczekaj, aż Enigmail załatwi sprawę i zaktualizuj do wersji 1.9.x, która rozwiązuje błąd, który wystąpił w wersji 1.9.

Nie mogę pomóc z 1 lub 2, ale z numerem 3:

  • Pobierz Enigmail 1.8.2 , który jest najnowszą wersją wcześniejszą niż 1.9, która nie wprowadziła błędu
  • Odinstaluj Enigmail 1.9 poprzez menu dodatków Thunderbird
  • W tym samym menu ręcznie zainstaluj pobrany plik 1.8.2, klikając przycisk konfiguracji dodatków u góry strony dodatków Thunderbird, po lewej stronie pola wprowadzania tekstu wyszukiwania
  • Uruchom ponownie Thunderbirda

Powinno teraz działać tak, jak przed aktualizacją Enigmail 1.9.

Sugerowałbym wyłączenie automatycznych aktualizacji Enigmail, dopóki ten błąd wprowadzony w 1.9 nie zostanie rozwiązany. Możesz je wyłączyć, klikając link „więcej” znajdujący się w tekście opisu rozszerzenia Enigmail na stronie dodatków Thunderbird.

Otręby
źródło
Myślę, że masz na myśli „Nie mogę pomóc z 1 lub 2 , ale z numerem 3 ”.
Socob
1
@Bran: Należy pamiętać, że po zmianie wersji Enigmail może pojawić się komunikat o błędzie informujący, że klucz nie został odnaleziony lub „wygasł”, nawet po ponownym uruchomieniu Thunderbirda. W rzeczywistości musiałem całkowicie zrestartować komputer, aby obejść ten problem. Na lepsze lub gorsze wydaje się, że jest to obecnie jedyne praktyczne rozwiązanie. Zamiast łamać oprogramowanie, powinien dać użytkownikowi możliwość wyboru, co ma robić (np.
Zezwalać na
1
Rzeczywista wiadomość:Enigmail Key ... not found or not valid. The (sub-)key might have expired.
code_dredd
Cóż, ponieważ jeden z opiekunów utworzył raport o błędzie wkrótce po wydaniu, nie wydaje się to zamierzoną zmianą. Co dziwne, zgłoszony błąd został teraz usunięty ...
Socob
Podejście @thisthatother działa również w Ubuntu, patrz packages.ubuntu.com/search?ke words=enigmail ... Ubuntu zapewnia enigmail jako apckage z wersją 1.8.2 obecnie dla wszystkich wersji ubuntu.
Matthias
5

Bardzo dziękuję za szczegółowy wkład wszystkich w tę kwestię.

Mam podobny problem, ponieważ mój system zaktualizował się do Enigmail 1.9 25 lutego. Rozwiązałem problem, odinstalowując Enigmail 1.9 i przełączając się na 1.8.

Dla mnie było to łatwe, ponieważ korzystam z Debiana 8 i po prostu odinstalowałem Enigmail jako samodzielny dodatek i zastąpiłem go Enigmailem w głównym repozytorium Debiana (która, jak pokazują niektóre badania, okazuje się być wersją 1.8.2 ). Wzruszać ramionami. Od tej zmiany nie miałem problemów. Mam nadzieję, że jest to przydatne dla innych i jeszcze raz dziękuję za postawienie mnie na właściwej drodze do rozwiązania problemu.

thisthatother
źródło
dzięki poprzednim plakatom za szczegółowe informacje, które pomogły mi znaleźć rozwiązanie mojej konkretnej sprawy. mam nadzieję, że
zadziała
Ciekawe znalezisko. Jednak nie używam Debiana i chociaż rozwiązanie specyficzne dla Debiana może działać tylko dla kilku osób, preferowane jest bardziej ogólne rozwiązanie.
code_dredd
1
Cóż, to powinno zadziałać w każdym przypadku - wystarczy zdobyć starszą wersję Enigmaila (nie sądzę, żeby były problemy z kompatybilnością z plikami .xpi).
Socob
To obejście rozwiązuje problem również dla mnie. Od tamtej pory nie ma problemów.
Matthias
2

Nie trzeba obniżać wersji wtyczki enigmail:

  • Element listy
  • Ubuntu 16.04
  • Thunderbird 45.2.0
  • Enigmail 1.9.5
  • gpg (GnuPG) 1.4.20

W terminalu:

killall gpg-agent
export GPG_TTY=$(tty)
gpg-agent --daemon /bin/bash

(--use-standard-socket jest przestarzały)

Nie ma potrzeby restartowania Thunderbirda.

0xFAb
źródło
Prawdziwe. Powiedziałem, że nie ma potrzeby obniżania wersji jako komentarza, ale zaktualizowałem post, aby był bardzo widoczny.
code_dredd
1

Miałem ten sam problem w tym sensie, że Enigmail nagle rzucił ten komunikat o błędzie przy każdej operacji po wielu miesiącach pracy. Wyłączenie komponentu GPG Password Agent w GNOME Keyring rozwiązało ten problem - Enigmail używa „oryginału” gpg-agentz programem pinentry (zamiast monitu o hasło do kluczy GNOME) i wszystko działa bez problemów.

Wyłączyłem komponent hasła GNOME Keyring GPG przy użyciu domyślnego programu Ubuntu „Startup Applications”:

Wyłączanie Agenta haseł GPG (z GNOME Keyring) za pomocą „Aplikacji startowych”

Powiedziałeś, że próbowałeś wyłączyć GNOME Keyring i że używasz GNOME Shell. Może to nie działało poprawnie? Możesz spróbować wykonać te same kroki, które mam (Aplikacje startowe / Unity) i sprawdzić, czy to coś zmieni.

Wygląda na to, że ten problem został spowodowany przez ostatnią aktualizację Enigmail (wersja 1.9 została wydana 23 lutego 2016 r.), Ponieważ wcześniej można go było używać z GNOME Keyring bez generowania tego błędu. Fakt, że wyłączenie GNOME Keyring rozwiązuje problem (i czas) sugeruje, że błąd Enigmail # 575 jest powiązany.

Socob
źródło
Wczoraj mogłem trochę więcej wkopać. Odkryłem, że ERROR hijackkomunikat pojawia się w dzienniku. Próbowałem wyłączyć tę samą opcję, którą już tam miałeś, ale problem polega na tym, że kiedy to zrobiłem, to nigdy nie można z nim porozmawiać, gpg-agentponieważ pinentrymonit o podanie hasła nigdy się nie pojawia (tzn. Wcześniej pojawia się inny komunikat o błędzie do każdej próby komunikacji z gpg-agent). Jeszcze raz się tym zajmę, kiedy jutro wrócę do pracy.
code_dredd
Link błędu Enigmail jest zepsuty ...
xuhdev
@xuhdev Tak, błąd został usunięty wkrótce po utworzeniu. Jednak nie mam pojęcia, dlaczego.
Socob