keylist.sh

Wer GNUPG intensiv nutzt, um z.B. seine Mails zu verschlüsseln, hat bald eine stattliche Anzahl von Schlüsseln in seinem Schlüsselbund. Da manche Schlüssel ein Verfallsdatum haben, bemerkt man dies meist erst, wenn die betreffenden Schlüssel mal wieder benötigt werden. Es sei denn, man hält sein Schlüsselbund immer auf dem aktuellen Stand. Was lag also näher, als den Schlüsselbund regelmäßig durch ein Script nach abgelaufenen oder demnächst ablaufenden Schlüsseln zu überprüfen. So entstand das Script keylist.sh.

Voraussetzungen:

Das Script benötigt natürlich das Programm gpg und die zugehörige Schlüsselbund-Datei im Home-Verzeichnis des Benutzers. Beides wird am Anfang des Scriptes überprüft.

Installation:

Kopiere die Datei keylist.sh in ein Verzeichnis Deiner Wahl. Vorzugsweise sollte dieses in PATH enthalten sein. Dann die Datei noch ausführbar machen - fertig.

Funktionsweise:

Das Script sucht zuerst im Schlüsselbund alle abgelaufenen Schlüssel und versucht diese erneut vom Schlüsselserver zu laden. Wird dabei festgestellt, daß es auf dem Schlüsselserver keine neuere Version des Schlüssels gibt, wird geprüft, ob das Ablaufdatum des Schlüssels länger als eine einstellbare Zeitspanne (Voreinstellung 90 Tage) zurückliegt. Manchmal werden die Schlüssel vom Inhaber zwar verlängert, es wird aber einfach nur vergessen, die neue Version des Schlüssels auf den Server zu laden. Nach 90 Tagen kann man aber davon ausgehen, daß der Inhaber den Schlüssel nicht verlängert hat und deshalb wird dieser aus dem Schlüsselbund entfernt.

Außerdem werden alle vom Inhaber zurückgezogenen Schlüssel aus dem Schlüsselbund gelöscht.

Zum Schluß sucht das Script nach Schlüsseln, die innerhalb einer bestimmten Zeitspanne (Voreinstellung 14 Tage) ablaufen und listet diese mit Schlüssel-ID und E-Mail-Adresse auf. So hat man die Möglichkeit dem Inhaber eine Mail zu schicken und ihn an die anstehende Verlängerung oder Neuerstellung seines Schlüssels zu erinnern.

Bei mir läuft das Script alle 14 Tage als cron-Job, wobei darauf zu achten ist, daß der cron-Job unter der User-ID des Users läuft, dessen Schlüsselbund bearbeitet werden soll. Das Script bearbeitet nicht den Schlüsselbund von Root. Der zugehörige crontab-Eintrag sieht also so aus:

30 0 * * 5/2   uwe     /home/uwe/bin/keylist.sh

Alle Variablen - vor allem die beiden Zeiteinstellungen - sind am Anfang des Scriptes deklariert und können den eigenen Bedürfnissen angepaßt werden. Das Script selbst gibt es hier zum Download.

Solltest Du doch noch Fehler entdecken, Tipps zur Verbesserung haben oder Infos über neue Versionen wünschen, dann schreib eine Mail an die im Script angegebene Adresse.