GPG/Terminal
Aus Palita
Du kannst GPG natürlich auch im Terminal verwenden. Das funktioniert sowohl unter Linux, als auch unter MacOS X und Windows. Gründe, um mit GPG im Terminal zu arbeiten gibt es viele, sei es, um etwas zu automatisieren (Bash, Applescript / Automator, Windows-Batch, ...), eine GPG-Funktion aus einem anderen Programm heraus aufzurufen, oder einfach weil die grafische Oberflächen (wie z.B. bei den Mac-GPG-Tools) eingeschränkt sind.
Inhaltsverzeichnis |
Installation
Die Installation wird hier nicht behandelt. Zum Installieren siehe im Artikel passend zu deinem Betriebssystem im Hauptartikel GPG. Für diese Anleitung wird vorausgesetzt, dass du GPG bereits installiert hast und es mit dem Befehl gpg ausführen kannst. Es wird außerdem angenommen, dass dein Terminal die Bash (Bourne Again Shell) benutzt, was standardmäßig auf Linux und MacOS X zutrifft. Für andere Shells, wie z.B. die Windows-eigene cmd, könnten einige Befehle möglicherweise nicht korrekt funktionieren bzw. andere Schreibweisen haben.
Privaten Schlüssel erstellen
Zur Erstellung eines privaten Schlüssels bietet GPG eine interaktive Abfrage. Du startest die Erstellung mit dem Befehl
gpg --gen-keyEs erfolgt die erste Abfrage, welche Art von Schlüssel erstellt werden soll.
benutzer@notebook:~$ gpg --gen-key gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Bitte wählen Sie, welche Art von Schlüssel Sie möchten: (1) DSA und Elgamal (voreingestellt) (2) DSA (nur unterschreiben/beglaubigen) (5) RSA (nur signieren/beglaubigen) Ihre Auswahl?
Hier wählt man standardmäßig (1) DSA und Elgamal, da mit dieser Art sowohl ver/entschlüsselt, als auch signiert/überprüft werden kann. Gib also einfach eine 1 ein und drücke Enter.
Es folgt die nächste Abfrage, wie lang der Schlüssel sein soll. Dabei gilt:
- Je länger, desto sicherer
- Je kürzer, desto schneller erfolgt die Verarbeitung (verschlüsseln, signieren etc.)
- Mögliche Größen: 1024 bis 4096
- Empfohlen: mindestens 2048, bestenfalls 4096
Du gibst also deine gewünschte Länge ein und drückst erneut auf Enter. Es erfolgt etwa folgende Ausgabe:
Das DSA-Schlüsselpaar wird 1024 Bit haben.
ELG-E Schlüssel können zwischen 1024 und 4096 Bits lang sein.
Welche Schlüssellänge wünschen Sie? (2048) 4096
Die verlangte Schlüssellänge beträgt 4096 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
0 = Schlüssel verfällt nie
<n> = Schlüssel verfällt nach n Tagen
<n>w = Schlüssel verfällt nach n Wochen
<n>m = Schlüssel verfällt nach n Monaten
<n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0)
Dabei wird gefragt, wie lange dein Schlüssel gültig, also verwendbar sein soll. Nach abgelaufener Zeit kannst du mit ihm nicht mehr Arbeiten. In diesem Beispiel belassen wir die Einstellung durch einfaches drücken von Enter bei der Standardeinstellung (0), wodurch der Schlüssel nie verfällt. Es erfolgt noch eine Bestätigungsaufforderung, der man durch j und erneut Enter zustimmt.
Schlüssel verfällt nie Ist dies richtig? (j/N) j
Anschließend werden deine Benutzerinformationen benötigt, die du auch korrekt ausfüllen solltest, um es dir und anderen Benutzer zu ermöglichen, deinen Schlüssel zu identifizieren. Gib die angeforderten Benutzerinformationen ein und bestätige jeweils mit Enter.
Sie benötigen eine User-ID, um Ihren Schlüssel eindeutig zu machen; das
Programm baut diese User-ID aus Ihrem echten Namen, einem Kommentar und
Ihrer Email-Adresse in dieser Form auf:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Ihr Name ("Vorname Nachname"): Max Mustermann
Email-Adresse: muster@musterdomain.xyz
Kommentar: Mein Schlüssel
Sie benutzen den Zeichensatz `utf-8'
Sie haben diese User-ID gewählt:
"Max Mustermann (Mein Schlüssel) <muster@musterdomain.xyz>"
Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? F Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen.
Jetzt wird noch nach einem Passwort gefragt. Dies sollte so sicher und lang wie möglich sein, damit der Schlüssel auch sicher ist. Lies im Passwörter-Artikel nach, falls du nicht genau weißt, was ein sicheres Passwort ausmacht.
Hinweis: Nach bewährtem Standard wird die Eingabe nicht angezeigt. Auch erscheinen keine Sternchen-Symbole (*) pro getipptem Zeichen. Wundere dich also nicht, warum du dein Passwort nicht eingeben kannst. Es funktioniert.
Geben Sie die Passphrase ein: Geben Sie die Passphrase erneut ein:
Es folgt eine einige Zeit dauernde, seltsame Ausgabe. Während dieser Zeit ist es sinnvoll deinen PC in irgend einer Weise zu benutzen. Surf im Internet, beweg die Maus, mach einfach irgendwas, damit der PC zufällige Daten erhält, die für den Schlüssel benötigt werden, um ihn sicher zu machen. Dieser Vorgang dauert je nach Schlüssellänge und Leistung des PC <1 bis >10 Minuten.
Wir müssen eine ganze Menge Zufallswerte erzeugen. Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
++++++++++++++++++++++++++++++.+++++++++++++++++++++++++.+++++++++++++++.++
++++++++++++++++++..++++++++++++++++++++++++++++++++++++++++>++++++++++>+++
++......................<+++++.....+++++
Es sind nicht genügend Zufallswerte vorhanden. Bitte führen Sie andere
Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!
(Es werden noch 284 Byte benötigt.)
Wir müssen eine ganze Menge Zufallswerte erzeugen. Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
.+++++.+++++....+++++..++++++++++.+++++.++++++++++...++++++++++..+++++.+++.
+++++++.+++++..+++++..+++++.+++++...+++++++++++++++...+++++.++++++++++..+++
++++++++..+++++...+++++++++++++++.++++++++++..++++++++++>+++++...++++++++++
+.+++++++++++++++...+++++.+++++.++++++++++>+++++>.+++++>.+++++>+++++.......
...........................................<..+++++........................
......................................................................>....
++++.......................<+++++.>..+++++.............................>.++
++....<.+++++.......................<+++++........>+++++...............>+++
+.................<+++++.+++++^^^
gpg: /home/benutzer/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: Schlüssel BEA75B32 ist als uneingeschränkt vertrauenswürdig gekennzeichnet
Öffentlichen und geheimen Schlüssel erzeugt und signiert.
gpg: "Trust-DB" wird überprüft
gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell
gpg: Tiefe: 0 gültig: 1 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
pub 1024D/BEA75B32 2009-04-16
Schl.-Fingerabdruck = 7551 31D1 D7FF EAE6 734D D485 F805 BA9A BEA7 5B32
uid Max Mustermann (Mein Schlüssel) <muster@musterdomain.xyz>
sub 4096g/5C7B29EF 2009-04-16
Damit ist dein Schlüssel fertig angelegt. Du siehst seine Eigenschaften in den letzten 4 Zeilen, in diesem Fall besitzt der Schlüssel die ID BEA75B23 und den Fingerabdruck 7551 31D1 D7FF EAE6 734D D485 F805 BA9A BEA7 5B32. Der Schlüssel kann in Zukunft entweder über die ID oder auch über die uid (Emailadresse) identifiziert werden.
Öffentlichen Schlüssel exportieren
Du kannst deinen öffentlichen Schlüssel als ASCII-formatierte Datei exportieren, um ihn weiterzugeben und anderen Benutzern somit zu ermöglichen, sicher mit dir zu kommunizieren.
Der Befehl zum Export lautet
gpg --armor --export deine@email.de
Zur Erklärung:
- gpg ruft das GnuPG-Programm auf
- --armor sorgt für eine Ausgabe im Textformat
- --export gibt dem Programm die Anweisung den Schlüssel zu exportieren
- deine@email.de ist die uid des Keys, der exportiert werden soll, hier kann natürlich auch die ID angegeben werden (z.B. BEA75B23)
Es folgt die direkte Ausgabe des öffentlichen Schlüssels, z.B.
benutzer@notebook:~$ gpg --armor --export deine@email.de -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.9 (GNU/Linux) mQGiBEY90ZYRBACIi9ziglq1FCh6pyO0WvAfQTaxb0IsI9a56O4WwolwHL3DK8E5 c48WEZUz8WzSAGEfwKkyXefblOlpnJxkRdZ0DeUZJTZ2WgmO1iDjpJxnf06sfocQ [... noch viel mehr ... ] e5OfXP1o9HAqVCAAnjq53PxkB66L8sBQzjM9I3WAeSe2 =EgUX -----END PGP PUBLIC KEY BLOCK-----
Diesen Key kannst du jetzt weitergeben, z.B. auf deiner Homepage veröffentlichen, in Textdateien (häufiger Standard: deinname.asc, wobei asc für ASCII - also reinen Text - steht) speichern, etc.
Du kannst die Ausgabe auch direkt in eine Datei umleiten, das funktioniert mit dem Zusatzparameter --output datei.asc, der Schlüssel wird dann in die Datei datei.asc gespeichert.
Beispiel:
benutzer@notebook:~$ gpg --output datei.asc --armor --export deine@email.de # Verzeichnisinhalt auflisten benutzer@notebook:~$ ls Bilder/ datei.asc Desktop/ Dokumente/ Musik/ Öffentlich/ Videos/ Vorlagen/ # Inhalt der Datei datei.asc ausgeben benutzer@notebook:~$ cat datei.asc -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.9 (GNU/Linux) [... und wieder der Schlüssel ...] -----END PGP PUBLIC KEY BLOCK-----
Wie man an den zwei Befehlen ls und cat sieht, wurde der Schlüssel in datei.asc gespeichert und enthält den eigenen Public-Key.
Öffentliche Schlüssel importieren
ToDo
Private Schlüssel importieren
ToDo
Dateien verschlüsseln
ToDo
Dateien signieren
ToDo
Dateien entschlüsseln
ToDo
Signaturen überprüfen
ToDo