# GPG / GnuPG / PGP Cheat-Sheet

<div id="bkmrk-gpg-%28bzw.-gpg%29-%E2%87%92-ope">- <div>GPG (bzw. gpg) ⇒ OpenPGP encryption and signing tool</div>
- <div>GnuPG ⇒ GNU Privacy Guard</div>
- <div>PGP ⇒ Pretty Good Privacy</div>

</div>#### GPG-Tools und Verwaltung unter Linux

##### Keymanager / Grafische Frontends

<div id="bkmrk-gpa-%E2%87%92-gnu-privacy-as">- <div>gpa ⇒ GNU Privacy Assistant (für GTK)</div>
- <div>seahorse ⇒ Frontend für GNOME</div>
- <div>kleopatra ⇒ Frontend für KDE</div>
- <div>kgpg ⇒ Frontend ebenfalls für KDE</div>

</div>#### GPG Basics

##### neuen Key erstellen

<div id="bkmrk-%24-gpg---gen-key">```
$ gpg --gen-key
```

</div>##### Keys anzeigen

<div id="bkmrk-%23-nur-%C3%B6ffentliche-sc">```
# nur öffentliche Schlüssel anzeigen
$ gpg --list-keys

# nur private Schlüssel anzeigen
$ gpg --list-secret-keys
```

</div>##### Keys exportieren

<div id="bkmrk-%23-%C3%B6ffentlichen-schl%C3%BC">```
# öffentlichen Schlüssel exportieren:
$ gpg --export -a "Username/KeyID" > user-pub.asc

# privaten Schlüssel exportieren:
$ gpg --export-secret-key -a "Username/KeyID" > user-pub-sec.asc
```

</div>##### Keys importieren

<div id="bkmrk-%24-gpg---import-user-">```
$ gpg --import user-pub.asc
$ gpg --import user-pub-sec.asc # es wird nicht zw. public/secret keys unterschieden
```

</div>##### Keys löschen

<div id="bkmrk-%24-gpg---delete-key-%22">```
$ gpg --delete-key "Username/KeyID"
$ gpg --delete-secret-key "Username/KeyID"
```

</div>##### Fingerprints für den gesamten Schlüsselbund anzeigen

<div id="bkmrk-%24-gpg---fingerprint">```
$ gpg --fingerprint
```

</div>##### Trust-Database exportieren/importieren

<div id="bkmrk-%23-export%3A-%24-gpg---ex">```
# Export:
$ gpg --export-ownertrust > trust.txt

# Import:
gpg --import-ownertrust < trust.txt
```

</div>##### Widerrufszertifikat erzeugen

Mit einem solchen Zertifikat lassen sich Schlüssel auf Keyservern für ungültig erklären, z.B. wenn man den privaten Schlüssel verloren oder sich einen neuen erstellt hat.

<div id="bkmrk-%24-gpg---gen-revoke-%22">```
$ gpg --gen-revoke "Username/KeyID"
```

</div>##### Passphrase eines Schlüssels ändern

<div id="bkmrk-%24-gpg---edit-key-%22us">```
$ gpg --edit-key "Username/KeyID" passwd
```

</div>##### Vertrauensverhältnis festlegen

<div id="bkmrk-%24-gpg---edit-key-%22us-0">```
$ gpg --edit-key "Username/KeyID" trust
```

</div>#### ICQ und GPG

Die ICQ-UIN als neue UserID an den eigenen Key hängen.

<p class="callout warning">Das ist nicht unbedingt Standard-Konform</p>

1\. zuerst die UID rausfinden, sofern nicht bekannt:

<div id="bkmrk-gpg---list-secret-ke"><div>```
gpg --list-secret-keys
```

</div></div>2\. mit folgendem Befehl fügt man eine neue (nicht standard-konforme) UID an den Key an:

<div id="bkmrk-gpg---allow-freeform"><div>```
gpg --allow-freeform-uid --edit-key <keyid> adduid
```

</div></div>3\. das Ganze sieht dann etwa so aus:

<div id="bkmrk-gpg-%28gnupg%29-1.4.7%3B-c">```
gpg (GnuPG) 1.4.7; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Secret key is available.

[...]

Real name: Hans Mustermann
Comment: 
You selected this USER-ID:
    "Hans Mustermann"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o

You need a passphrase to unlock the secret key for
user: "Hans Mustermann <hans@mustermann.de>"

[...]

Command> quit
Save changes? (y/N) y
```

</div>