Benutzer-Werkzeuge

Webseiten-Werkzeuge


gpg

Dies ist eine alte Version des Dokuments!


GPG (GnuPG)

GNU Privacy Guard (auch GnuPG oder GPG genannt) ist FOSS und implementiert den OpenPGP- und in Version 2 auch den S/MIME- und den PGP/MIME-Standard. Es wurde als Ersatz für das proprietäre Pretty Good Privacy (PGP) entwickelt.

Konfiguration

  • immer lange version der keyid anzeigen
  • loopback für pinentry benutzen (nur auf windows, wenn man kein popup fenster möchte; auf linux besser pinentry-curses benutzen)
~/.gnupg/gpg.conf
keyid-format long
pinentry-mode loopback
  • cache ttl für passphrase (separat für ssh)
  • loopback pinentry erlauben
~/.gnupg/gpg-agent.conf
default-cache-ttl 7200
default-cache-ttl-ssh 1800
max-cache-ttl 28800
max-cache-ttl-ssh 7200
allow-loopback-pinentry

Unter Windows: Umgebungsvariable anlegen

GNUPGHOME=%userprofile%\.gnupg

evtl. Dateien vom alten ins neue dir verschieben (powershell commands)

> mv $env:userprofile/AppData/Roaming/gnupg/* $env:userprofile/.gnupg/
> rm -r $env:userprofile/AppData/Roaming/gnupg/

GPG Agent neustarten

gpg agent restart bzw. start/stop (z.B. bei dem error: gpg: can't connect to the agent: Invalid value passed to IPC)

> gpg-connect-agent /bye
> gpg-connect-agent killagent /bye

das /bye verhindert, dass man in dem prompt von gpg-connect-agent bleibt

Anwendung

GPG sign testen

> echo "test" | gpg --clearsign

Wichtig! Wenn das Signieren mit GPG nicht geht, liegt es womöglich daran, dass GPG die TTY nicht findet und deshalb nicht nach der Passphrase fragen kann

> echo 'export GPG_TTY=$(tty)' >> ~/.bashrc

GPG key paar generieren

> gpg --full-generate-key
  • RSA and RSA und 4096 auswählen
  • Namen und E-Mail eintragen

GPG key editieren

> gpg --edit-key XXXXXXXXXXXXXXXX

GPG key auflisten

Wichtig: Wie oben gezeigt, das Format in der gpg.conf setzen, oder --keyid-format long angeben, sonst erhält man nur die verkürzte Ausgabe!

public key

> gpg -k

private key

> gpg -K

GPG key exportieren

Wichtig: Man sollte beim normalen Export die Dateiendung .gpg wählen und beim Export mit -a / --armor (ASCII armored) die Dateiendung .asc wählen

Wenn man keine Key für --export / --export-secret-keys spezifiziert, werden alle exportiert!

public key

> gpg -a -o gpg-public-keys.asc --export XXXXXXXXXXXXXXXX

private key

> gpg -a --export-secret-keys XXXXXXXXXXXXXXXX -o gpg-private-keys.asc

GPG ownertrust exportieren

empfohlen statt trustdb.gpg zu sichern

> gpg --export-ownertrust > gpg-ownertrust.txt

GPG key importieren

> gpg --import gpg-public-keys.asc
> gpg --import gpg-private-keys.asc

GPG ownertrust importieren

> gpg --import-ownertrust gpg-ownertrust.txt

GPG key lokal exportieren und auf anderer maschine importieren

> gpg -a --export XXXXXXXXXXXXXXXX | ssh other-machine gpg --import

GPG key auf anderer maschine exportieren und lokal importieren

> ssh other-machine gpg -a --export XXXXXXXXXXXXXXXX | gpg --import

GPG key vertrauen

nach import erforderlich, wenn man ownertrust nicht übernommen hat

> gpg --edit-key XXXXXXXXXXXXXXXX
gpg> trust
gpg> save
/home/http/wiki/data/attic/gpg.1660129301.txt · Zuletzt geändert: von david