Neue Seite
GPG: Starker Schlüssel + kompletten Ordner sicher verschlüsseln
0) Voraussetzungen prüfen
gpg --version
# GnuPG 2.2+ oder 2.4+ empfohlen
# (Optional) Terminal-Setup:
export GPG_TTY=$(tty)
Side Fact: Moderne GnuPG-Versionen wählen bereits starke Defaults. GPG_TTY sorgt dafür, dass die Passphrase-Abfrage im Terminal sauber funktioniert.
1) Sehr starken Schlüssel erzeugen (ECC/Curve25519)
# Interaktiver Weg (empfohlen):
gpg --expert --full-generate-key
# Auswahl im Dialog:
# (9) ECC und ECC
# dann: Curve 25519
# Gültigkeit: z.B. 2y (verlängerbar)
# Name/E-Mail setzen
# starke Passphrase vergeben (lang, zufällig)
Side Fact: Curve25519 erzeugt primär einen Ed25519-Signierschlüssel + einen X25519-(Cv25519)-Verschlüsselungs-Subkey. Das ist aktuell das Best-Practice-Setup: schnell, kurz, sehr sicher.
1.1) Key anzeigen & Fingerprint notieren
gpg --list-keys
gpg --fingerprint "Dein Name" # 40-stelliger Fingerprint; den notieren
Side Fact: Beim Verschlüsseln mit
--recipient
ist es am sichersten, den Fingerprint oder die komplette E-Mail zu verwenden, damit garantiert dein Schlüssel trifft.2) (Optional) Krypto-Preferences harten
# In ~/.gnupg/gpg.conf (falls Datei nicht existiert, neu anlegen)
# -- sichere, moderne Präferenzen:
personal-cipher-preferences AES256 AES192 AES
personal-digest-preferences SHA512 SHA384 SHA256
cert-digest-algo SHA512
# Agent neu laden:
gpgconf --reload gpg-agent
Side Fact: AES-256 ist ein sehr starker Blockcipher. Für Hashes ist SHA-1 veraltet; nutze SHA-512/256 (Familie SHA-2).
3) Einen kompletten Ordner inkl. Dateinamen verschlüsseln
# Variablen:
ORDNER="mein_geheimer_ordner"
EMPFAENGER="Dein Name <you@example.com>" # oder der 40-stellige Fingerprint
OUT="mein_geheimer_ordner.tar.gpg"
# 3.1: Ordner als TAR in den Standard-Output schreiben (ohne Metadaten-Leaks) und an gpg pipen:
tar --sort=name \
--mtime='UTC 1970-01-01' \
--owner=0 --group=0 --numeric-owner \
-C "$(dirname "$ORDNER")" \
-cf - "$(basename "$ORDNER")" \
| gpg --encrypt --recipient "$EMPFAENGER" \
--cipher-algo AES256 \
--output "$OUT"
Side Fact:
tar
vor gpg
schützt Dateinamen und Ordnerstruktur. --sort=name
& --mtime
reduzieren Metadaten-Leaks. --cipher-algo AES256
erzwingt sehr starke Verschlüsselung.3.2) Erfolg prüfen (ohne zu entschlüsseln)
# Prüfen, dass die Datei wirklich für deinen Schlüssel bestimmt ist:
gpg --list-packets "$OUT" | sed -n '1,20p' # zeigt Empfänger-IDs / Algorithmen
3.3) (Optional) Klartext sicher entfernen
# Nur wenn du ein klassisches HDD-Dateisystem nutzt:
shred -vzun 3 -r -- "$ORDNER" # ACHTUNG: auf SSDs nicht zuverlässig!
# Besser auf SSD: vorab Full-Disk-Encryption nutzen oder das ganze Verzeichnis
# in ein bereits verschlüsseltes Volume legen (z.B. LUKS/cryptsetup).
Wichtig: shred ist auf SSDs und Copy-on-Write-Dateisystemen (btrfs, zfs) nicht zuverlässig. Für maximale Sicherheit: System/Partition mit LUKS verschlüsseln und sensible Daten dort ablegen.
4) Entschlüsseln & auspacken
# 4.1: Entschlüsseln (fragt nach deiner Passphrase):
gpg --output mein_geheimer_ordner.tar --decrypt mein_geheimer_ordner.tar.gpg
# 4.2: Auspacken:
tar -xf mein_geheimer_ordner.tar
Side Fact: GPG nutzt für jede Datei eine zufällige Sitzungsschlüssel-AES-Verschlüsselung und verschlüsselt diesen Session Key asymmetrisch für deinen Public Key.
5) Alternative: Jedes File im Ordner einzeln verschlüsseln
# Achtung: Dateinamen bleiben sichtbar. Nutze das nur, wenn du bewusst pro Datei .gpg willst.
ORDNER="mein_geheimer_ordner"
EMPFAENGER="Dein Name <you@example.com>"
find "$ORDNER" -type f -print0 | while IFS= read -r -d '' f; do
gpg --yes --encrypt --recipient "$EMPFAENGER" --cipher-algo AES256 --output "$f.gpg" "$f"
# (Optional) Originaldatei entfernen – s. Hinweise zu SSD/HDD oben:
# shred -vzun 3 -- "$f" # auf HDD ok, auf SSD unsicher
done
6) Schlüssel-Backup & Vertrauensstufe
# Public Key exportieren (zum Teilen):
gpg --armor --export "$EMPFAENGER" > publickey.asc
# Private Keys sichern (streng geheim, offline lagern!):
gpg --armor --export-secret-keys "$EMPFAENGER" > privatekey-backup.asc
# (Optional) Eigenen Key als "ultimativ" vertrauen:
gpg --edit-key "$EMPFAENGER"
gpg> trust
# Auswahl: 5 = ultimate
gpg> quit
Hinweis: Stelleprivatekey-backup.asc sicher,enthält dassdeinen dugeheimen AdministratorrechteSchlüssel besitzt.– niemals in Cloud/Versionierung ablegen. Am besten offline (USB im Safe) + sehr starke Passphrase.
7) Extra-Härtung (optional, sehr empfehlenswert)
- Smartcard/YubiKey: Private Keys auf Hardware-Token auslagern – Schlüsselmaterial verlässt nie das Gerät.
- Passphrase-Qualität: Lange, zufällige Passphrase (z. B. Password-Manager, 6–8+ Diceware-Wörter oder 20–30+ Zeichen).
- Key-Expiry: Keys mit Ablaufdatum (z. B. 1–2 Jahre) erstellen und rechtzeitig verlängern/rotieren.
- Systemweit verschlüsseln: LUKS-Vollverschlüsselung für SSDs/HDDs, um Reste & Swap zu schützen.
8) Schnellreferenz
# Key erzeugen (interaktiv, Curve25519):
gpg --expert --full-generate-key
# Ordner als .tar.gpg (versteckt Dateinamen):
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
-C "$(dirname "$ORDNER")" -cf - "$(basename "$ORDNER")" \
| gpg --encrypt --recipient "$EMPFAENGER" --cipher-algo AES256 --output "$OUT"
# Entschlüsseln:
gpg -o ordner.tar -d ordner.tar.gpg && tar -xf ordner.tar
Tipp für BookStack: Du kannst die <style>
-Sektion oben weglassen, wenn euer Theme eigene Hinweisboxen hat.