Baue deine eigenen VerschlĂŒsselungs-Tools mit 50 Zeilen Bash.
Echte PrivatsphĂ€re basiert auf Transparenz, nicht auf geheimen Apps oder Blackboxes. Diese Anleitung liefert dir zwei auditierbare Bash-Skripte, um sensible Ordner mit Standard-GPG und AES256 zu verschlĂŒsseln und zu entschlĂŒsseln. Keine Cloud, kein Abo, einfach nur reine Mathematik und Linux.
âDon't trust, verify.â
Wir sagen das ĂŒber Bitcoin-Nodes. Wir sollten es auch ĂŒber unsere Sicherheits-Tools sagen.
Viele Menschen verlassen sich auf komplexe Apps mit glÀnzenden OberflÀchen, um ihre Daten zu verstecken. Aber KomplexitÀt ist der Feind der Sicherheit. Jede Zeile Code, die du nicht geschrieben hast (und nicht lesen kannst), ist ein potenzielles Sicherheitsrisiko.
Die robusteste VerschlĂŒsselung kommt oft von Werkzeugen, die seit Jahrzehnten getestet werden: GPG und Tar.
Im Folgenden findest du zwei Skripte, die ich nutze, um Daten zu sichern. Sie verwandeln jeden Ordner in ein verschlĂŒsseltes .tar.gz.gpg-Archiv.
Sie funktionieren auf deinem High-End-Linux-Desktop und sogar auf deinem Smartphone (via Termux).
Warum Skripte nutzen?
- Auditierbarkeit: Du kannst jede Zeile lesen. Keine versteckten HintertĂŒren.
- Standardisierung: Der Output ist Standard-OpenPGP. Du kannst es auch in 20 Jahren noch entschlĂŒsseln, selbst wenn diese Skripte verloren gehen.
- Geschwindigkeit: Es kombiniert Archivierung, Komprimierung und VerschlĂŒsselung in einem einzigen Datenstrom (Stream).
1. Das Konzept
Wir erfinden das Rad nicht neu. Wir ketten Standard-Tools aneinander:
- Tar: BĂŒndelt Dateien zusammen.
- Gzip: Komprimiert sie.
- GPG (AES256): VerschlĂŒsselt sie symmetrisch.
OPSEC-Hinweis
Diese Skripte nutzen symmetrische VerschlĂŒsselung. Die Sicherheit hĂ€ngt vollstĂ€ndig von der StĂ€rke deines Passworts ab. Nutze ein langes Passwort mit hoher Entropie (ZufĂ€lligkeit), das du nirgendwo sonst verwendest.
2. Teil 1: Das Schild (VerschlĂŒsselung)
Speichere diesen Code als Datei namens encrypt-folder.sh.
#!/bin/bash
# đ Vereinheitlichtes VerschlĂŒsselungs-Skript (TUXEDO + Termux)
# Ausgabe: ~/VerschlĂŒsselt_<Ordner>.tar.gz.gpg (+ .sha256)
#
# S2K-HĂ€rtung: SHA512 + AES256 + maximale Iterationen (65011712)
# â Brute-Force-Angriffe auf das Passwort werden 100x teurer.
set -Eeuo pipefail
umask 077
read -p "đ Bitte gib den Ordnernamen ein: " ORDNERNAME
if [ -z "${ORDNERNAME:-}" ]; then
echo "â Kein Name eingegeben. Abbruch."
exit 1
fi
SRC="$HOME/$ORDNERNAME"
if [ ! -d "$SRC" ]; then
echo "â Ordner nicht gefunden: $SRC"
exit 1
fi
# Zielpfad unterscheiden (PC vs. Termux)
if [ -d "$HOME/storage/downloads" ]; then
# Termux-Speicher (Android)
OUTDIR="$HOME/storage/downloads"
else
# TUXEDO OS / Linux Desktop
OUTDIR="$HOME"
fi
ZIEL="$OUTDIR/VerschlĂŒsselt_${ORDNERNAME}.tar.gz.gpg"
if [ -f "$ZIEL" ]; then
ZIEL="$OUTDIR/VerschlĂŒsselt_${ORDNERNAME}_$(date +%F_%H%M).tar.gz.gpg"
fi
echo "đŠ Packe & verschlĂŒssele â $ZIEL"
# Packen und verschlĂŒsseln im Stream (kein Klartext-Zwischenschritt)
# S2K-HĂ€rtung:
# --s2k-cipher-algo AES256 â SchlĂŒsselableitung mit AES256
# --s2k-digest-algo SHA512 â SHA512 als Hash (stĂ€rker als Standard SHA1)
# --s2k-count 65011712 â Maximale Iterationen â Brute-Force 100x teurer
# --no-symkey-cache â Passwort wird nicht im GPG-Agenten gecacht
tar -C "$HOME" -cf - -- "$ORDNERNAME" \
| gzip -9 \
| gpg --symmetric \
--cipher-algo AES256 \
--s2k-cipher-algo AES256 \
--s2k-digest-algo SHA512 \
--s2k-count 65011712 \
--compress-level 0 \
--no-symkey-cache \
-o "$ZIEL"
# PrĂŒfsumme mit relativem Namen
( cd "$(dirname "$ZIEL")" && sha256sum "$(basename "$ZIEL")" > "$(basename "$ZIEL").sha256" )
# Optional Desktop-Benachrichtigung (nur unter Linux)
if command -v notify-send >/dev/null 2>&1; then
notify-send "â
VerschlĂŒsselt" "Archiv: $(basename "$ZIEL")"
fi
echo "â
Fertig: $(basename "$ZIEL")"
echo "đ§© SHA256-Datei: $(basename "$ZIEL").sha256"
3. Teil 2: Der SchlĂŒssel (EntschlĂŒsselung)
Das EntschlĂŒsselungs-Skript bietet drei Modi â je nachdem was du brauchst:
- [T] TAR schreiben (Standard): Gibt die entschlĂŒsselte
.tar.gzins Home-Verzeichnis aus â ohne zu entpacken. - [E] Entpacken: EntschlĂŒsselt und entpackt direkt in
~/Restore/. - [L] Liste: Zeigt den Inhalt des Archivs an, ohne etwas zu schreiben.
Speichere diesen Code als Datei namens decrypt-folder.sh.
#!/usr/bin/env bash
# decrypt-folder.sh â EntschlĂŒsselt <NAME>[.tar.gz].gpg aus ~ oder ~/Downloads.
# Modi: SHA256-Check, Loopback-Fallback, Entpacken (E), Liste (L), Standard: TAR schreiben (T)
set -Eeuo pipefail
umask 077
export GPG_TTY="${GPG_TTY:-$(tty 2>/dev/null || true)}"
die(){ printf "â %s\n" "$*" >&2; exit 1; }
# --- Eingabe: Name oder Pfad, mit/ohne .gpg ---
NAME="${1-}"
if [ -z "$NAME" ]; then
printf "Wie heiĂt die verschlĂŒsselte Datei (ohne .gpg)? "
IFS= read -r NAME
fi
[ -n "$NAME" ] || die "Kein Name."
# Falls Nutzer doch .gpg mitgegeben hat â abstreifen
NAME="${NAME%.gpg}"
# Kandidaten-Pfade fĂŒr die .gpg finden
CAND=(
"$HOME/${NAME}.gpg"
"$HOME/Downloads/${NAME}.gpg"
"$PWD/${NAME}.gpg"
)
INPUT=""
for p in "${CAND[@]}"; do
[ -f "$p" ] && INPUT="$p" && break
done
[ -n "$INPUT" ] || die "Nicht gefunden: ${NAME}.gpg (in ~ oder ~/Downloads)."
# Ziele
OUT_TAR="$HOME/${NAME}" # z.B. ~/VerschlĂŒsselt_SAP.tar.gz
STAMP="$(date +%F_%H%M%S)"
RESTORE="$HOME/Restore/${NAME}_${STAMP}"
mkdir -p "$HOME/Restore"
# Optionaler SHA-Check (pfadunabhÀngig vergleichen)
if [ -f "${INPUT}.sha256" ]; then
echo "đ PrĂŒfe SHA256 ..."
exp="$(awk '{print $1}' "${INPUT}.sha256")"
act="$(sha256sum "$INPUT" | awk '{print $1}')"
if [ "$exp" = "$act" ]; then
echo "â
SHA256 OK"
else
echo "â ïž SHA256 Mismatch! Weiter mit Vorsicht."
fi
fi
# Modus abfragen
printf "Modus: [T]AR schreiben (Standard) / [E]ntpacken / [L]iste: "
read -r -n1 MODE || true; echo
MODE=${MODE:-T}
# Helfer-Funktionen (mit Loopback-Fallback)
decrypt_to_tar() {
gpg --decrypt "$INPUT" | tar -xz -C "$RESTORE" && return 0
echo "â ïž Versuch mit loopback âŠ"
gpg --pinentry-mode loopback --decrypt "$INPUT" | tar -xz -C "$RESTORE"
}
decrypt_to_file() {
gpg --output "$OUT_TAR" --decrypt "$INPUT" && return 0
echo "â ïž Versuch mit loopback âŠ"
gpg --pinentry-mode loopback --output "$OUT_TAR" --decrypt "$INPUT"
}
case "$MODE" in
L|l)
gpg --decrypt "$INPUT" | tar -tz || \
gpg --pinentry-mode loopback --decrypt "$INPUT" | tar -tz
;;
E|e)
mkdir -p "$RESTORE"
echo "đŠ Entpacke nach: $RESTORE"
decrypt_to_tar
command -v notify-send >/dev/null && notify-send "â
Entpackt" "$RESTORE"
echo "â
Fertig: $RESTORE"
;;
T|t|*)
# Standard: entschlĂŒsselte .tar.gz im HOME schreiben
[ -f "$OUT_TAR" ] && rm -f "$OUT_TAR"
echo "đ Schreibe: $OUT_TAR"
decrypt_to_file
command -v notify-send >/dev/null && notify-send "â
EntschlĂŒsselt" "$OUT_TAR"
echo "â
Fertig: $OUT_TAR"
;;
esac
đ§° Tools fĂŒr echte EigentĂŒmer (Werbung/Affiliate)
Tools, die ich selbst nutze â fĂŒr Bitcoin-Selbstverwahrung und digitale SouverĂ€nitĂ€t:
-
Bitcoin kaufen in Europa â 21bitcoin:
Bitcoin-only App aus Europa, ideal fĂŒr DCA und regelmĂ€Ăiges sats stapeln â ohne Shitcoins.
Mit dem Code ALIENINVESTOR erhĂ€ltst du dauerhaft 0,2 Prozentpunkte GebĂŒhrenreduktion auf Sofort- und SparplankĂ€ufe.
https://alien-investor.org/21bitcoin -
âż Bitcoin in Selbstverwahrung:
Hardware-Wallet statt Börsenkonto. Ich nutze die BitBox â es gibt die klassische BitBox02 und die neue BitBox fĂŒr iPhone (Nova).
https://alien-investor.org/bitbox -
Privacy & Mail:
FĂŒr E-Mail, VPN und Cloud nutze ich Proton â datensparsam und ohne Big-Tech-AbhĂ€ngigkeit.
https://alien-investor.org/proton
Hinweis: Bei einigen Links handelt es sich um Affiliate-Links. Wenn du sie nutzt, unterstĂŒtzt du meine Arbeit, ohne dass es dich mehr kostet. Danke!