Irgendwann hatte ich mal eine Liste mit GPG Befehlen erstellt. Diese möchte ich mit euch teilen. Bevor ich mit den Befehlen anfange, möchte ich kurz meine GPG Config zeigen (~/.gnupg/gpg.conf):
1
2
3
| use-agent
keyserver hkp://pgp.mit.edu:11371
keyserver-options auto-key-retrieve |
use-agent
keyserver hkp://pgp.mit.edu:11371
keyserver-options auto-key-retrieve
In dieser Config habe ich zum einen eingestellt, dass zum Abfragen des Passworts der GPG-Agent benutzt wird. Dafür benötigt man je nach Distribution/Betriebssystem das Paket „gnupg-agent“ (in ArchLinux ist es bereits in gnupg) und „pinentry“ (Ubuntu: pinentry-curses, pinentry-gtk2, pinentry-qt und/oder pinentry-qt4). Soweit ich weiß wird in GnuPG 2 der Agent standardmäßig benutzt.
Außerdem habe ich einen Keyserver festgelegt. Dadurch muss man bei den Befehlen, die mit dem Keyserver arbeiten, nicht ständig diesen per „–keyserver“ angeben.
In der letzten Zeile habe ich angegeben, dass der Schlüssel automatisch vom Keyserver geholt wird (deshalb muss der Keyserver ebenfalls in der Config festgelegt sein). So wird bei mir in Thunderbird beim Überprüfen der Signatur der E-Mails automatisch der Schlüssel vom Keyserver geholt.
Zu den Befehlen:
Vorweg: Ich benutze immer den Befehl „gpg2“. Ihr könnt natürlich auch „gpg“ verwenden.
Schlüssel anzeigen/auflisten
Alle Schlüssel im Keyring erhält man wie folgt:
Um einen bestimmten Schlüssel zu zeigen, gibt man beim letzten Befehl die Schlüssel-ID mit an:
Den Fingerprint des Schlüssels anzeigen:
% gpg2 --fingerprint $KEY |
% gpg2 --fingerprint $KEY
Die Signaturen des Schlüssels anzeigen:
Alle Schlüssel auflisten, von denen man den geheimen Schlüssel hat:
% gpg2 --list-secret-keys |
% gpg2 --list-secret-keys
Den Öffentlichen Schlüssel exportieren (in der Konsole angezeigt):
% gpg2 --armor --export $KEY |
% gpg2 --armor --export $KEY
Um diesen öffentlichen Schlüssel in eine Datei zu speichern:
% gpg2 --armor --output $DATEI --export $KEY |
% gpg2 --armor --output $DATEI --export $KEY
Schlüssel erzeugen
Irgendwann benötigt man einen eigenen Schlüssel oder muss sich einen neuen erzeugen. Dies geht einfach per:
Eigentlich ist alles selbsterklärend. Als Schlüsselart nimmt man „(1) RSA und RSA (voreingestellt)“. Die Schlüssellänge setze ich gerne auf 4096. Beim Verfallsdatum stelle ich immer unendlich ein. Dies kann man später auch ändern (siehe unten). Nicht vergessen den Schlüssel auf einen Keyserver hochzuladen (siehe unten).
Schlüssel bearbeiten
Schlüssel bearbeiten, um diesen z.B. zu ändern oder zu unterschreiben:
Alternativ: Falls man mehrere eigene Schlüssel hat und beim Bearbeiten mit einem bestimmten Schlüssel unterschreiben möchte:
% gpg2 -u $OWNKEY --edit-key $KEY |
% gpg2 -u $OWNKEY --edit-key $KEY
Weitere Identität hinzufügen
Wenn man mit dem erzeugten Schlüssel für weitere E-Mail Adressen signieren möchte, dann kann man dies wie folgt machen (man muss vorher in den Bearbeitungsmodus – siehe letzten Abschnitt):
gpg> adduid
Hier gibt man den Namen, die E-Mail Adresse sowie (falls gewünscht) einen Kommentar an. Mit „f“ sagt man, dass es so stimmt und mit „save“ speichert man den Schlüssel.
Schlüssel unterschreiben
(vorher muss man in den Bearbeitungsmodus gehen – siehe oben)
Unterschreiben kann man mit:
gpg> sign
(hier wird nochmal angezeigt, mit welchem Schlüssel signiert wird)
Wirklich signieren? (j/N) j
(Passwortabfrage)
gpg> trust
Ihre Auswahl? 5 (bzw. je nach Vertrauen abstrufen)
Wollen Sie diesem Schlüssel wirklich uneingeschränkt vertrauen? (j/N) j
gpg> q
Änderungen speichern? (j/N) j
Verfallsdatum setzen und neuen Unterschlüssel erzeugen
Der Alex hat dies ausführlich erklärt. Hier nur ganz kurz zusammengefasst (vorher in den „Bearbeitungsmodus“):
Um das Verfallsdatum bei einem Unterschlüssel zu setzen, muss dieser erst einmal ausgewählt werden und dann das Datum setzen:
gpg> key 1
(In der Liste ist bei dem ausgewählten Unterschlüssel nun ein Stern)
gpg> expire
Ändern des Verfallsdatums des Unterschlüssels.
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
0 = Schlüssel verfällt nie
= Schlüssel verfällt nach n Tagen
w = Schlüssel verfällt nach n Wochen
m = Schlüssel verfällt nach n Monaten
y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 6m
Key verfällt am Fr 17 Okt 2014 14:07:11 CEST
Ist dies richtig? (j/N) j
(Passwortabfrage)
gpg> save
Mit „addkey“ erzeugt man analog einen Unterschlüssel. Hier wählt man dann am besten „(6) RSA (nur verschlüsseln)“ aus. Am Ende das Speichern nicht vergessen.
Keyserver etc
Hat man Änderungen an dem Schlüssel vorgenommen, dann kann man ihn hochladen (ggf. „–keyserver“ angeben):
Benötigt man einen bestimmten Schlüssel vom Keyserver oder möchte diesen nur updaten, dann kann man ihn sich herunterladen:
Man sammelt in der ganzen Zeit viele Schlüssel. Diese werden von anderen signiert oder vom Eigentümer aktualisiert (neuer Unterschlüssel, zurückgesetzt, …). Deshalb möchte man von Zeit zu Zeit mal alle Schlüssel in seinem Keyring aktualisieren: