Austausch von öffentlichen Schlüsseln mit gpg --export und gpg --import
In diesem Schritt lernen Sie, wie Sie öffentliche Schlüssel mit anderen austauschen. Um eine Datei für jemand anderen zu verschlüsseln, benötigen Sie dessen öffentlichen Schlüssel. Ebenso benötigen andere Ihren öffentlichen Schlüssel, wenn sie Ihnen eine verschlüsselte Datei senden möchten. Dieser Prozess beinhaltet den Export Ihres öffentlichen Schlüssels in eine Datei und den Import von öffentlichen Schlüsseln, die Sie von anderen erhalten, in Ihren GPG-Schlüsselbund.
Exportieren wir zunächst Ihren eigenen öffentlichen Schlüssel. Sie verwenden den Befehl gpg --export
. Es ist bewährte Praxis, die Option --armor
zu verwenden, die eine textbasierte (ASCII) Version des Schlüssels erstellt, wodurch er sich leicht in E-Mails oder andere textbasierte Kommunikationskanäle kopieren und einfügen lässt. Wir speichern ihn in einer Datei namens labex.pub
.
Führen Sie in Ihrem Terminal den folgenden Befehl aus. Ersetzen Sie labex
durch die Benutzerkennung (User ID), die Sie bei der Schlüsselgenerierung verwendet haben.
gpg --export --armor -o labex.pub labex
Sie können mit ls
überprüfen, ob die Datei erstellt wurde:
ls
Sie sollten labex.pub
in der Dateiliste sehen. Sie können auch den Inhalt anzeigen:
cat labex.pub
Die Ausgabe ist ein Textblock, der mit -----BEGIN PGP PUBLIC KEY BLOCK-----
beginnt. Dies ist Ihr öffentlicher Schlüssel, den Sie nun mit anderen teilen können.
Als Nächstes simulieren Sie den Empfang eines öffentlichen Schlüssels von einem anderen Benutzer und dessen Import in Ihren Schlüsselbund. In einem realen Szenario würden Sie den öffentlichen Schlüssel von einer anderen Person über einen sicheren Kanal erhalten. Für dieses Labor erstellen wir ein temporäres Alice-Schlüsselpaar und exportieren dann Alices öffentlichen Schlüssel, um diesen Prozess zu simulieren.
Generieren wir zunächst temporär ein Schlüsselpaar für Alice. Wir verwenden einen Batch-Modus, um diesen Prozess ohne interaktive Abfragen zu automatisieren:
cat > alice-key-params << 'EOF'
Key-Type: RSA
Key-Length: 2048
Subkey-Type: RSA
Subkey-Length: 2048
Name-Real: Alice
Name-Email: [email protected]
Expire-Date: 2y
%no-protection
%commit
EOF
Generieren Sie nun Alices Schlüsselpaar mit der Parameterdatei:
gpg --batch --generate-key alice-key-params
Sie sollten eine Ausgabe sehen, die die Schlüsselgenerierung bestätigt:
gpg: key <KEY_ID> marked as ultimately trusted
public and secret key created and signed.
Exportieren Sie nun Alices öffentlichen Schlüssel in eine Datei, um zu simulieren, wie Sie ihn von Alice erhalten würden:
gpg --export --armor -o alice.pub [email protected]
Für diese Laborvorführung entfernen wir auch Alices geheimen Schlüssel aus dem Schlüsselbund, da Sie in der Realität nur ihren öffentlichen Schlüssel hätten:
gpg --delete-secret-keys [email protected]
Bestätigen Sie die Löschung, indem Sie y
eingeben und Enter
drücken, wenn Sie dazu aufgefordert werden.
gpg --delete-keys [email protected]
Bestätigen Sie die Löschung erneut, indem Sie y
eingeben und Enter
drücken.
Nun haben Sie Alices öffentlichen Schlüssel in der Datei alice.pub
, was simuliert, wie Sie ihn von einem anderen Benutzer erhalten würden.
Bereinigen Sie die temporäre Datei zur Schlüsselgenerierung:
rm alice-key-params
Da Sie nun Alices öffentlichen Schlüssel in einer Datei haben, importieren Sie ihn mit dem Befehl gpg --import
in Ihren GPG-Schlüsselbund.
gpg --import alice.pub
Sie sollten eine Ausgabe sehen, die den Import des Schlüssels bestätigt:
gpg: key <KEY_ID>: public key "Alice <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
Um zu bestätigen, dass Alices Schlüssel nun in Ihrem Schlüsselbund vorhanden ist, listen Sie erneut alle Ihre öffentlichen Schlüssel auf.
gpg --list-keys
Die Ausgabe zeigt nun sowohl Ihren Schlüssel (labex
) als auch den neu importierten Schlüssel (Alice
) an.
/home/labex/.gnupg/pubring.kbx
------------------------------
pub rsa3072 2025-07-01 [SC] [expires: 2027-07-01]
<FINGERPRINT_LABEX>
uid [ultimate] labex <[email protected]>
sub rsa3072 2025-07-01 [E] [expires: 2027-07-01]
pub rsa2048 2025-07-01 [SC] [expires: 2027-07-01]
<FINGERPRINT_ALICE>
uid [ unknown] Alice <[email protected]>
sub rsa2048 2025-07-01 [E] [expires: 2027-07-01]
Beachten Sie, dass Alices Schlüssel mit [ unknown]
Vertrauen markiert ist. Wie Sie das Schlüsselvertrauen verwalten, erfahren Sie im nächsten Schritt.