Ihr findet auf http://www.minet.uni-jena.de/~kubijens/lt-keys.txt oder auch auf diesem Rechner eine Liste aller Fingerprints für das Keysigning zum Chemnitzer Linuxtag 2004. Man kann dort auf verschiedene Weise weitere Informationen gewinnen. Stefan Schmidt hat anhand des sig2dot-Skriptes eine Auswertung gemacht. Diese wird bis Ende März 2004 immer wieder aktualisiert.
Falls ihr die Daten der Liste anders sortiert haben möchtet bzw. gewisse Informationen extrahieren wollt, will ich euch untenstehend ein paar Hinweise geben.
Für alle weitere Schritte sollte man zunächst eine Liste der UIDs aus der Datei erzeugen. Dies kann man z.B. mit einer Kombination aus awk und sed tun:
awk '/^pub/ { print $2 }' lt-keys.txt | sed 's/^[^/]*\///'
D.h. awk wird angewiesen, nach Zeilen zu suchen, die mit pub beginnen und aus dieser Zeile dann das zweite Feld zu drucken. sed schnappt sich dann die Ausgabe von awk und schneidet alles von Beginn der Zeile bis zum / ab. Dies könnt ihr dann noch in eine Datei umleiten und schon ist die erste Aufgabe erledigt. Die Datei key.id enthält die UIDs.
Ein anderer Weg ist, sed allein zu nutzen:
sed -n '/^pub/s/^[^/]*\/\([^ ]*\).*/\1/p' lt-keys.txt
Dies sieht ein wenig kryptischer aus. Hier nimmt sich sed alle Zeilen, die mit "pub" beginnen und schneidet vom Anfang der Zeile alles weg, was kein "/" ist. Der darauffolgende "/" wird ebenfalls weggeschnitten. Danach merkt sich sed alles bis zum nächsten Leerzeichen und ab diesem wird der Rest wieder abgetrennt. Das, was es sich gemerkt hat, wird ausgegeben.
Für das Keysigning ist es mir persönlich lieber, die Liste zu numerieren. Dadurch fällt u.U. die Navigation leichter. Weiterhin kann man neben die laufende Nummer gleich ein Kästchen zum Ankreuzen anbringen, ob der betreffende Fingerprint und die zugehörige Identität in Ordnung sind. Für diese Aufgabe ist die oben erstellte Liste nun von Nutzen.
Man nimmt also jede UID aus der Liste und übergibt diese dann an GnuPG. GnuPG gibt den Fingerprint aus. Ein Problem gibt es, wenn der betreffende Key sich noch nicht im Keyring befindet. Daher muss hier etwas mehr Aufwand getrieben werden:
#!/bin/sh i=1 while read key; do echo "=== $i ===" gpg --fingerprint 0x$key 2> /dev/null if [ $? == 2 ]; then gpg --recv-keys 0x$key > /dev/null 2>&1 && gpg --fingerprint 0x$key fi i=`expr $i + 1` done < ./key.id
Das Shellskript legt eine Laufvariable i mit dem Startwert 1 fest und liest Zeile für Zeile die UIDs aus der Datei key.id. Zuerst wird der aktuelle Wert der Laufvariablen gedruckt. Darunter steht dann der Fingerprint. Falls dieser nicht vorhanden ist (GnuPG gibt den Exitcode 2 zurück), wird der Key vom Keyserver geladen. Letztlich zählt man die Laufvariable wieder um eins hoch und beginnt mit dem nächsten Durchlauf. Ich leite dies dann in eine Datei um.
Ein weiterer Wunsch ist es, die Liste nach Namen zu sortieren. Hier bedient man sich wieder des Programmes sed und sort zum Sortieren:
sed -n '/^pub/s/^pub[^/]*\/\([^ ]*\) \([^ ]*\) \([^<]*\) \([^>]*>\)/\3 \4 \2 \1/p' lt-keys.txt | sort -k 2 | cat -n
Wie in dem obigen Beispiel werden nur alle Zeilen heraus gezogen, die mit "pub" beginnen. Von diesen Zeilen wird alles inklusive des ersten "/" weggeschnitten. Danach merkt sich sed die durch Leerzeichen getrennten Gruppen. Vornamen, Nachnamen und eventuelle Bemerkungen kommen in ein Feld. Diese Felder werden in geänderter Reihenfolge ausgegeben und durch sort geschickt. Diese Ausgabe wird am Ende durch cat -n numeriert.
Diese Sortierung kann man natürlich beliebig anders gestalten. Eurer Fantasie sind hierbei keine Grenzen gesetzt.
Solltet ihr Anmerkungen oder Ergänzungen zu der Seite haben, nehme ich die gern unter jens@kubieziel.de entgegen.