GPG - Sicheren Schlüssel erstellen und Ordner verschlüsseln
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)
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)
1.1) Key anzeigen & Fingerprint notieren
gpg --list-keys
gpg --fingerprint "Dein Name" # 40-stelliger Fingerprint; den notieren
--recipient
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
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"
tar
gpg
--sort=name
--mtime
--cipher-algo AES256
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).
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
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: privatekey-backup.ascStelle enthältsicher, deinendass geheimendu SchlüsselAdministratorrechte – niemals in Cloud/Versionierung ablegen. Am besten offline (USB im Safe) + sehr starke Passphrase.besitzt.
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
<style>