Thunderbird/Enigmail entschlüsselt nicht

JochenF

Well-Known Member
Hallo,
ich habe ein seltsames Problem mit Thunderbird welches ich mir nicht erklären kann. Enigmail kann meine Mails nicht entschlüsseln, nichtmal die die ich mir selber schreibe. Enigmail ist natürlich installiert, mein private Key ist importiert, im Mailkonto ist PGP Sicherheit aktiviert. Abgehend verschlüsseln funktioniert auch, aber Mails im Postfach lassen sich nicht entschlüsseln. Was kann das denn sein? Hab keine Ahnung was ich noch kontrollieren könnte.

Thunderbird ist 31.4.0 und Enigmail 1.7.2. Hab das auch schon aus den Ports compiliert, gleiches Ergebnis.
 
Gleiches Problem hier - schon seit einiger Zeit. Ich kann nicht genau sagen, wann es erstmals aufgetreten ist, weil ich (leider) sehr selten PGP-verschlüsselte Nachrichten erhalte.

Ich hatte erstmal bei Enigmail selbst geschaut und im Enigmail Forum hat ein FreeBSD-User ebenfalls dieses Problem gepostet. Leider ohne Antwort. Bei mir funktioniert es exakt so, wie dort beschrieben: Wenn ich mit dem fraglichen Schlüssel auf der Command Line entschlüssele, kann ich direkt im Anschluss auch in Thunderbird die Mail entschlüsselt sehen. Ich vermute daher, dass das Problem irgendwo zwischen Enigmail und gpg-agent liegt.

Nachtrag: Hab das gerade noch zum FreeBSD Bug report hinzugefügt - hoffentlich hilft es den Entwicklern, das Problem zu lokalisieren.
 
Hatte ich auch mal, da war schlicht das falsche pinentry Paket (eins für die Konsole) installiert.

Einfach pinentry-gtk2 installiert und es lief.
 
An der Ecke war ich auch grad am suchen. Das Pinentry-Fenster kam nämlich nicht. Bei mir sind beide installiert, pinentry-gtk2 und pinentry-tty. Der symlink pinentry zeigt auf pinentry-tty. Den hab ich jetzt umgebogen auf pinentry-gtk2 und nun scheint es zu klappen.
 
Es hängt davon ab mit welcher Option security/pinentry installiert wurde. Den würde ich aus den Ports installieren. Wenn man ansonsten Pakete einsetzt, die entsprechende Fingerweg Option setzen. Das Teil installiert nur den Symlink und eine .info Datei. Benutzt eigentlich irgend jemand .info?
 
Das kann ich jetzt nicht mehr nachvollziehen wie der pinentry reingekommen ist. Auf jeden Fall muss ich mit den Packages und Ports noch viel üben. Kämpfe gerade mit einem anderen Problem: wenn man möchte dass die Qt Dialoge ähnlich wie die GTK Dialoge aussehen, braucht man die make Option QT4_OPTIONS=QGTKSTYLE. Installiert man Packages, dann sind die natürllich ohne diese Option compiliert. Jetzt muss ich irgendwie rausfinden was ich von dem bereits installierten Qt-Zeugs neu über die Ports installieren muss. Und dann muss ich auch noch locken, damit sie nicht mehr neu durch pkg installiert werden. Mann ist das kompliziert...
 
Das ist an der Stelle relativ blöd gelöst. Bei mir äußerte sich damals so, vollkommen intransparent, nach einem Update ging halt GPG nicht mehr. Keine sinnvolle Fehlermeldung in Thunderbird.

Erst nach ein paar Tagen kam ich auf die Idee nach dem Pinentry zu schauen. Dann war es sehr schnell klar.

Ich vermute die Ursache damals war, dass die Option in dem Port umbenannt wurde und somit plötzlich wieder der Default griff.
 
Ich hatte das gleiche Problem auch schon, und da ich gpg manchmal auf der Konsole verwende, wollte ich gerne 2 pinentry Programme nutzen, jenachdem ob ich unter Xorg oder auf der Konsole unterwegs bin. Habs aber leider nicht wirklich hinbekommen, und momentan baut Thunderbird bei mir nicht mehr.
 
Das kann ich jetzt nicht mehr nachvollziehen wie der pinentry reingekommen ist. Auf jeden Fall muss ich mit den Packages und Ports noch viel üben. Kämpfe gerade mit einem anderen Problem: wenn man möchte dass die Qt Dialoge ähnlich wie die GTK Dialoge aussehen, braucht man die make Option QT4_OPTIONS=QGTKSTYLE. Installiert man Packages, dann sind die natürllich ohne diese Option compiliert. Jetzt muss ich irgendwie rausfinden was ich von dem bereits installierten Qt-Zeugs neu über die Ports installieren muss. Und dann muss ich auch noch locken, damit sie nicht mehr neu durch pkg installiert werden. Mann ist das kompliziert...
Wenn es so umfangreich ist dann ist es evtl. einfacher komplett Ports zu verwenden (oder poudriere).
 
Ich hatte das gleiche Problem auch schon, und da ich gpg manchmal auf der Konsole verwende, wollte ich gerne 2 pinentry Programme nutzen, jenachdem ob ich unter Xorg oder auf der Konsole unterwegs bin. Habs aber leider nicht wirklich hinbekommen, und momentan baut Thunderbird bei mir nicht mehr.
Wenn Du die DISPLAY Environment-Variable löschst (unsetenv DISPLAY in tcsh) solltest Du auf der Konsole automatischen Fallback auf pinentry-curses haben, wenn es denn installiert ist.
 
Das ist an der Stelle relativ blöd gelöst. Bei mir äußerte sich damals so, vollkommen intransparent, nach einem Update ging halt GPG nicht mehr. Keine sinnvolle Fehlermeldung in Thunderbird.

Erst nach ein paar Tagen kam ich auf die Idee nach dem Pinentry zu schauen. Dann war es sehr schnell klar.

Ich vermute die Ursache damals war, dass die Option in dem Port umbenannt wurde und somit plötzlich wieder der Default griff.
Irgendein Update hat mir den symlink von pinentry nach pinentry-gtk-2 wieder umgebogen auf pinentry-tty. Damit konnte enigmail wieder nicht mehr entschlüsseln. Hat Tage gedauert bis ich mich wieder daran erinnert hab was das Problem war. Ich vermute dass es ein Update von pinentry-tty war, wer sonst sollte sowas tun? Wie kann ich dem das dauerhaft abgewöhnen?

Noch besser wäre natürlich, wenn Enigmail gleich den richtigen pinentry aufrufen würde. Aber ich vermute das entscheidet der gpg selbst. Dann müsste der gpg so gepatcht werden dass er abhängig von der Umgebung das eine oder das andere aufruft.
 
Der Symlink gehört zu security/pinentry. Mit dessen Konfiguration wählst Du aus was unter /usr/local/bin/pinentry aufgerufen wird.

Das ist der Port in dem die GTK Option umbenannt wurde und damit plötzlich mein pinentry weg war. So lange die Option nicht geändert wird reicht es den Port passend zu konfigurieren.

Wenn Du Pakete verwendest musst Du das Paket sperren, wenn Du nicht dem Default folgen willst.
 
Danke Kamikaze, das mit dem pinentry war ein guter Hinweis!
Man kann das so lösen, wenn man Pakete benutzt und nicht immer den Symlink ändern will:
  1. Schreibt „pinentry-program /usr/local/bin/pinentry-gtk-2“ ans Ende der Datei ~/.gnupg/gpg-agent.conf
  2. Startet den Computer neu
Das habe ich von hier:
https://www.enigmail.net/support/gnupg2_issues.php

Dann klappt das mit Enigmail wieder! Auf der Kommandozeile klappt die Verschlüsselung dann leider nicht mehr, vielleicht hat noch jemand eine Idee dazu?
 
Guter Hinweis das mit dem gpg-agent.conf. Bei mir klappt das auch auf der Kommandozeile (im Terminal unter X11). Ohne X11 kann es natürlich nicht funktionieren, aber dafür könnte man sich ein Script machen welches prüft ob die DISPLAY-Variable existiert, wenn nein dann pinentry-tty ausführen, sonst pinentry-gtk-2.
 
Ach ich hatte versucht eine falsche Datei zu entschlüsseln, daher klappte es nicht im Terminal unter X11!

So, hier ist eine für mich gute Lösung, das klappt auf der Konsole, in einerm X11-Terminal und mit Thunderbird:
In ~/.gnupg/gpg-agent.conf schreibt man „pinentry-program /home/BENUTZER/bin/pinentry“.

Und das Script /home/BENUTZER/bin/pinentry sieht z.B. so aus:
Code:
#!/bin/sh

arg=
display=
for opt in "$@"; do
  if [ "$opt" = "--display" ]; then
    arg=1
  elif [ -n "$arg" ]; then
    display="$opt"
  else
    arg=
  fi
done

if [ -n "$display" ]; then
  exec /usr/local/bin/pinentry-gtk-2 "$@"
else
  exec /usr/local/bin/pinentry-tty "$@"
fi
Es klappt (bei mir zumindest) nicht die Umgebungsvariable DISPLAY zu benutzen, man muss offensichtlich das Display aus dem Parameter --display herausziehen.

Das ist von hier: https://github.com/PhantomX/slackbuilds/blob/master/pinentry/pinentry-wrapper

/usr/local/bin/pinentry sollte echt so ein Wrapper sein statt ein Symlink, der dann auch den QT pinentry berücksichtigt.
 
Perfekt! Mit DISPLAY hat es bei mir auch nicht richtig geklappt. Aber das Script von eric81 scheint in allen Lagen zu funktionieren.
 
Perfekt ist, wenn das Script für alle funktioniert und es als /usr/local/bin/pinentry mitinstalliert wird.

Hat jemand Lust bei einem Patch mitzumachen für den Port security/pinentry?

Ein Anfang wäre das bereits oben verlinkte Script https://github.com/PhantomX/slackbuilds/blob/master/pinentry/pinentry-wrapper
  • Doch das hat noch eine Abhängigkeit zu x11/xprop, schöner wäre ein laufendes KDE anders herauszufinden.
  • Und das Script kennt pinentry-tty noch nicht.
  • Dann noch alles mit dem Makefile zum Laufen kriegen.
 
Müsste man nicht erstmal den jetzigen Maintainer fragen?

Für mich ist das ein offensichtliches Defizit, die Lösung wäre ein Segen für alle Enigmail-Nutzer (weiß nicht welche X11 Applikation das noch in der Form benutzt). Es wäre lediglich eine Änderung für diejenigen, die das im X11 Terminal benutzen, die sehen dann ein Fenster statt ein Prompt im Terminal.

Aber recht hast Du, ich frage mal ob der Maintainer das auch gut finden würde.

Jemand da, der das Script später mit KDE testen möchte?
 
Für mich ist das ein offensichtliches Defizit
Bei genauerer Betrachtung ist es sogar ein Bug. Thunderbird hängt von gnupg ab. Gnupg hängt von pinentry ab. Pinentry hängt von pinentry-tty ab. Damit funktioniert Enigmail aber gar nicht. Wenn etwas nicht funktioniert ist es ein Bug. ;)
Mich wundert warum nicht viel mehr Leute über dieses Problem stolpern. Verschlüsseln so wenige?
 
Ich habe nicht den kompletten Thread gelesen, will dennoch zwei Dinge dazu sagen:
- Ich nutze pinentry mit claws-mail und habe keine Probleme.
- JochenF: Wenn ihr den Patch einreicht (zB zusammen mit einem Bugreport) kapert ihr damit nicht den Port. Es ist soweit ich weiß sogar der offizielle Weg.

Gruß
 
Zurück
Oben