01.
Juni
2011
Nach der Neuinstallation von Linux Mint 11 (Katya) erhielt ich beim Anwenden von Mozilla Thunderbird stets eine Fehlermeldung der »GPG-Agent« könne nicht gestartet werden.
Was ist gpg-agent
überhaupt? Wenn man mit GnuPG arbeitet, beispielsweise weil man seine E-Mails signiert und/oder verschlüsselt, muss man stets das »Mantra« (das Passwort) eingeben. Beantwortet man mehrer E-Mails hintereinander oder will man mehrere verschlüsselt erhaltene E-Mails lesen, müsste man stets das Mantra erneut eingeben.
gpg-agent
speichert das Mantra in einem Zwischenspeicher und fragt erst nach dem Ablauf eines festlegbaren Zeitintervalls erneut danach. Sollte gpg-agent
nicht gestartet sein, erhält man eine entsprechende Fehlermeldung:
Die Fehlermeldung ist dabei ein wenig irreführend. Man könnte vermuten, dass sie nicht installiert ist – was allerdings in der Regel schon passiert ist wenn man das GnuPG-Paket samt Abhängigkeiten installiert hat.
Die Fehlermeldung sollte eher vermitteln, dass auf den GPG-Agent nicht zugegriffen werden konnte da dieser nicht gestartet ist.
Die Lösung für das Problem ist sehr einfach. Mit einem kleinen Eintrag in der im eigenen Home-Verzeichnis abgelegten Konfigurationsdatei für GnuPG kann gpg-agent
beim Einloggen des Benutzers automatisch mit gestartet werden. Die Konfigurationsdatei ~/.gnupg/gpg.conf
sah bei mir wie folgt aus:
###+++--- GPGConf ---+++###
utf8-strings
keyserver hkp://keys.gnupg.net
###+++--- GPGConf ---+++### 11/12/09 10:22:07 Mitteleuropäische Zeit
# GPGConf edited this configuration file.
# It will disable options before this marked block, but it will
# never change anything below these lines.
Damit gpg-agent
wie beschrieben beim Anmelden automatisch gestartet werden soll muss der Eintrag use-agent
in einer Zeile eingefügt werden. Wie man der Konfigurationsdatei entnehmen kann sollte der Eintrag einfach ans Ende der Datei angefügt werden. Dies kann mit dem folgenden Einzeiler an der Komanndozeile bewerkstelligt werden:
echo "use-agent" >> ~/.gnupg/gpg.conf
Anschließend sollte die Konfigurationsdatei wie folgt aussehen:
###+++--- GPGConf ---+++###
utf8-strings
keyserver hkp://keys.gnupg.net
###+++--- GPGConf ---+++### 11/12/09 10:22:07 Mitteleuropäische Zeit
# GPGConf edited this configuration file.
# It will disable options before this marked block, but it will
# never change anything below these lines.
use-agent
Nach dem Ab- und erneuten Anmelden des Benutzers an der grafischen Oberfläche sollte die Fehlermeldung beim Benutzen von Programmen wie Mozilla Thunderbird nicht mehr erscheinen.
Weitere zusätzliche angaben wie man die Konfigurationdatei anpassen beziehungsweise optimieren kann sind auf der zum GPG-Agent gehörigen Wiki-Seite[1] der deutschsprachigen Ubuntu-Wiki zu finden.
Abschließend noch als Erklärung (da diese in dem Wiki-Eintrag nicht aufgeführt ist): Der Aufruf use-agent
wird von /etc/X11/Xsession.d/90gpg-agent
überprüft. Das Script ist bei Linux-Mint, Ubuntu und anderen auf Debian GNU/Linux basierenden Distributionen unter dem angegebenen Pfad vorhanden. Der Inhalt des Scripts:
: ${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
Bei anderen Distributionen könnte ein anderes Script den GPG-Agent automatisch beim Anmelden unter X ausführen. In diesem Fall die Dokumentation der jeweiligen Distribution nach einem entsprechenden Vermerk durchsuchen – oder das über diesem Absatz abgebildete Script verwenden.
X_FISH