Dateien verschlüsseln mit gpg

From Linuxwiki
Revision as of 11:24, 10 November 2022 by Sunflower (talk | contribs)
Jump to navigation Jump to search

Anwendungsfälle:

  • Dateien verschlüsseln (e.g. Passwörter, die man nicht im Klartext irgendwo rumliegen lassen will)
  • Git commits signieren
  • ...

Schlüssel erzeugen

$ gpg --gen-key

Danach werden Real Name, Email address und passphrase abgefragt.

Alternative:

$ gpg --full-gen-key

(alle Optionen werden abgefragt)

Alle Keys auflisten

$ gpg --list-keys

Expire date ändern

Per default ist der Key 2 Jahre lang gültig. Ändern lässt sich dies mit der Option gpg --edit-key <ID|Email>:

$ pgp --edit-key foobar@example.de

Darauf kommt man in eine Subshell mit dem Prompt gpg>. Durch Eingabe von '?' findet man die richtige Option: expire

gpg>?
gpg>expire
 Changing expiration time for the primary key.
Please specify how long the key should be valid.
        0 = key does not expire
     <n>  = key expires in n days
     <n>w = key expires in n weeks
     <n>m = key expires in n months
     <n>y = key expires in n years
Key is valid for? (0) 25y
Key expires at Mon 04 Nov 2047 12:14:40 PM CET
Is this correct? (y/N) y

In diesem Fall haben wir den Key auf 25 Jahre Gültigkeit gesetzt.

Verlassen kann man das Menu mit q(uit):

gpg> q
Save changes? (y/N) y

Datei ver- und entschlüsseln

$ gpg -e <Dateiname>

verschlüsselt

$ gpg -d <Dateiname>

entschlüsselt

Beachte: Die Originaldatei bleibt erhalten, es wird lediglich zusätzlich eine Datei <name.gpg> angelegt.

Verschlüsselte Datei im vi öffnen

Hierfür muss man folgenden gpg/vimconfig Configschnipsel in seine .vimrc einfügen. Danach kann man die Textdatei direkt mit dem vim öffnen, beim Speichern wird man gefragt, welchen Schlüssel man verwenden will.

Gpg Keys gemeinsam nutzen

Zur gemeinsamen Nutzung einer verschlüsselten Datei kann ein User seinen Key exportieren. Andere User, die ihn importieren, können nun auf dieselbe Datei zugreifen.

Key exportieren:

$ gpg --export <keyname> > example.gpg
$ gpg --export-secret-keys <name > example.key

Key importieren:

$ gpg --import example.gpg
$ gpg --import example.key

Beim private Key muss das Passwort bekannt sein. Dieses kann der User nachher bei sich ändern:

$ gpg --edit-key <name>
> passwd
(der User, von dem importiert wurde, muss die alte Passphrase eingeben)
(der neue User gibt seine eigene Passphrase ein)

Um hässlichen Warnungen vorzubeugen, will man noch das Trustlevel hochsetzen:

>trust

(4 oder 5 eingeben)

Anmerkung: Das Popup für die Eingabe des Passworts ist per Default eine gtk-Anwendung. Wer z.B. von einer Windows-Workstation mit einem putty kommt, hat hier ein Problem, weil X-forwarding nicht funktioniert. Hier hilft, seinen agent auf tty umzustellen:

$ export GPG_TTY=$(tty)
$ gpg-connect-agent updatestartuptty /bye >/dev/null