Mit VeraCrypt eine verschlüsselte Partition erstellen und automatisch beim Login entsperren
Es gibt verschiedene Möglichkeiten, unter Linux eine Festplattenverschlüsselung zu erreichen. Man kann z.B. bei Fedora und Ubuntu bereits bei der Installation die Verschlüsselung der Festplatte auswählen. Man kann aber auch mit verschlüsselten Containern/Partitionen arbeiten, wie z.B. mit VeraCrypt. Darum soll es in diesem Artikel gehen.
Grundsätzlich gilt bei Verwendung von verschlüsselten Datenträgen: Backup, Backup, Backup! Verliert man das Passwort oder den Wiederherstellungsschlüssel oder die Passphrase, oder gibt es Probleme mit dem Betriebssystem, sodass das System nicht mehr bootet, sind möglichweise (oder eher wahrscheinlicherweise) alle Daten weg. Daher bereits beim Nachdenken über Verschlüsselung auch das Backup-Konzept klären!
VeraCrypt Container oder Partition anlegen
Mit VeraCrypt kann man entweder eine Partition auf der Festplatte (muss vorher erstellt worden sein, mit einem zunächst beliebigen Dateisystem) verschlüsseln, oder eine verschlüsselte Containerdatei erstellen, die dann wie ein Laufwerk eingebunden wird.
Dazu zunächst VeraCrypt installieren.
VeraCrypt installieren
Unter Ubuntu kann man das entsprechende Debian-Paket von VeraCrypt Downloadseite herunterladen.
Unter Fedora und anderen Linuxen kann man das AppImage verwenden, hat dann aber nicht die nachfolgend genutzten Kommandozeilentools zur Verfügung.
Das AppImage ist nur sinnvoll, wenn man ausschließlich mit dem graphischen VeraCrypt-Client arbeiten will.
Besser ist die Verwendung des Generic Installers. Das Archiv pakt man aus, startet den Installer veracrypt-1.xx.yy-setup-gui-x64 und installiert das Programm systemweit.
1
2
# Fedora braucht noch die lib-fuse
sudo dnf install fuse-libs
Container erstellen
Dazu startet man veracrypt und klickt sich durch den Erstellungswizard durch, siehe einschlägige Tutorials im Internet, wie das Beginners Tutorial oder das VeraCrypt Tutorial der Uni Würzburg.
Nun hat man entweder eine Partition verschlüsselt oder eine Containerdatei erstellt. Nachfolgend muss man diese noch ins Dateisystem einbinden.
Aus verschiedenen Gründen ist die Verwendung einer Containerdatei einfacher (man kann z.B. den ganzen Container einfach mal so auf eine andere Festplatte verschieben oder als ganzes ins Backup schieben). Auch ist nur mit einer Containerdatei ein bequemes Einbinden beim Einloggen ohne manuelle Passworteingabe möglich. Daher würde ich diese Variante stets empfehlen.
VeraCrypt Container einbinden
Einen VeraCrypt-Container bzw. eine Partition kann man entweder interaktiv mit dem VeraCrypt-Client oder mittels Kommandozeilenbefehl einbinden. Der Container wird im Dateisystem in einem mount-Punkt eingehängt.
Um eine Containerdatei einzuhängen:
1
veracrypt --text --mount /home/username/data.vc /home/username/data --pim 0 --keyfiles "" --protect-hidden no --verbose
wobei /home/username/data.vc der Pfad zu erstellten Containerdatei ist und /home/username/data der Wurzelpfad der eingehängten Containerdatei. Das Verzeichnis /home/username/data muss existieren. Beim Ausführen des Befehls wird der Nutzer aufgefordert, erst das Nutzer-Passwort einzugeben (Nutzer muss in der sudoer-Gruppe sein) und dann das VeraCrypt-Container-Passwort einzugeben. Wenn man die Argumente --pim 0 und --keyfiles "" verwendet, muss man diese Eingaben nicht interaktiv machen.
Wenn die VeraCrypt-Datei und der Mount-Punkt in Deinem Homeverzeichnis liegen, dann braucht man für das Einbinden oben keine Sudo-Rechte. Das ermöglicht auch ein automatisches Einbinden beim Einloggen (siehe Kapitel unten). Wenn man den Container aber Systemweit (z.B. für mehrere Nutzer) einbinden will, muss man sudo verwenden.
Um eine Partition einzuhängen benutzt man:
1
sudo veracrypt --mount /dev/sdaX /home/username/data
Hier muss /dev/sdaX mit dem Device-Knoten der Partition ersetzt werden.
Da der Zugriff auf /dev/sdXX Root-Rechte verlangt, ist hier zwingend ein sudo notwendig.
Am Besten erstellt man sich dazu ein Script:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# VeraCrypt-Volume entsperren
VERACRYPT_PASSWORD="DEIN_PASSWORT"
VERACRYPT_MOUNT_POINT="/media/veracrypt"
VERACRYPT_VOLUME="/dev/sdX1" # Pfad zur Partition (z.B. /dev/sda1)
# Überprüfen, ob das Volume bereits eingehängt ist
if ! mount | grep $VERACRYPT_MOUNT_POINT; then
# VeraCrypt mit Passwort und Volume-Mount
sudo veracrypt --mount $VERACRYPT_VOLUME $VERACRYPT_MOUNT_POINT --password $VERACRYPT_PASSWORD
fi
Diese Script muss mit root-Rechten (also sudoer) ausgeführt werden. Blöd ist, dass hier das Passwort im Klartext abgelegt ist, was man ja nicht will. Nachfolgend wird eine Technik beschrieben, wie man das Passwort im zentralen Passwortmanager ablegen kann, der beim Einloggen automatisch entsperrt wird.
VeraCrypt Container beim Login automatisch einbinden und entsperren
Der GNOME-Desktop bringt einen Passwortmanager seahorse (auch bekannt als GNOME Keyring) mit, in dem Passwörter gespeichert werden. Dieser wird automatisch beim Einloggen entsperrt. Daher ist es naheliegend, das Passwort in diesem Passwortmanager zu hinterlegen.
GNOME Keyring (seahorse) installieren
In den meisten modernen GNOME-basierten Linux-Distributionen ist seahorse standardmäßig installiert, falls nicht, kann man es mit folgendem Befehl nachinstallieren:
1
2
3
4
# Ubuntu
sudo apt install seahorse
# Fedora
sudo dnf install seahorse
Weitere Informationen zum Programm liefert die GNOME Seahorse Seite.
Schlüsselbund im GNOME Keyring erstellen
Zuerst seahorse öffnen (Passwörter im App-Menü genannt). Das Masterpasswort für alle weiteren Passwörter ist normalerweise das Loginpasswort.
Das Master-Passwort für den GNOME Keyring wird automatisch mit geändert, wenn man in den Einstellungen/Benutzerkonto sein Loginpasswort ändern. Sollte man sein Passwort jedoch über die Kommandozeile mit
passwdändern, so behält seahorse das alte Passwort bei und muss mit diesem entsperrt werden. Da das ziemlich nervt, sollte man unter GNOME das Passwort eher in der Einstellungsseite ändern.
VeraCrypt-Passwort im Keyring speichern
Ein eigenes Passwort abzulegen, geht wie folgt:
- In der
seahorse-Anwendung klinkt man nun auf das Symbol für “Passwörter” (links in der Sidebar) - Auf das Pluszeichen (
+) in der oberen Leiste klicken, um ein neues Passwort hinzuzufügen - Die Option Passwort in der Liste auswählen
- Das Anmeldung Schlüsselbund ausgewählt lassen und eine Beschreibung eingeben, z.B.
VeraCrypt Volumeoder einen anderen Namen, der hilft, das gespeicherte Passwort zu identifizieren - Im Feld Passwort das VeraCrypt-Passwort eingeben
- Mit OK das Passwort speichern
Jetzt ist das VeraCrypt-Passwort im GNOME Keyring sicher gespeichert.
Automatisches Auslesen des gespeicherten (und beim Einloggen entsperrten) Passworts
secret-tool ist ein Kommandozeilenwerkzeug, das es ermöglicht, Passwörter aus dem GNOME Keyring zu extrahieren.
Falls secret-tool noch nicht installiert ist, installiert man es mit:
1
2
3
4
# Debian/Ubuntu
sudo apt install libsecret-tools
# Fedora
sudo dnf install libsecret
Anzeige aller selbst abgelegten Passwörter im GNOME Keyring
Der folgende Befehl zeigt alle selbst abgelegten Passwörter. Diese werden mit dem Schlüssel xdg:schema org.gnome.keyring.Note gespeichert:
1
2
3
4
5
6
7
$ secret-tool search --all xdg:schema org.gnome.keyring.Note
[/65]
label = VeraCrypt
secret = meinsupergeheimesextralangespasswort
created = 2025-12-04 20:34:18
modified = 2025-12-04 20:37:07
schema = org.gnome.keyring.Note
Um das Passwort abzurufen, führt man nun aus:
1
2
$ secret-tool lookup xdg:schema org.gnome.keyring.Note
meinsupergeheimesextralangespasswort
Beim interaktiven Anlegen eines Passworts in der GNOME Keyring (seahorse) Oberfläche legt das Programm für alle Passwörter das gleiche Attribut/Werte-Paar
xdg:schema org.gnome.keyring.Notean. Bei der Abfrage mitsecret-tool lookup xdg:schema org.gnome.keyring.Notewird daher immer nur das zuerst gefundene Passwort (d.h. das zuletzt angelegte) zurückgeliefert. Um individuelle Passwörter mit unterschiedlichen eindeutigen Schlüsseln anzulegen, muss man das auf der Kommandozeile machen:
1 secret-tool store --label="VeraCrypt Containerpasswort" reference veracrypt.passwordDabei ist
referenceein beliebiger Schlüsselname (nach dem man später suchen kann) undveracrypt.passwordder eindeutige Schlüsselwert (auch beliebig). Nun findet man dieses spezielle Passwort mit:
1 2 3 4 # Eintrag anzeigen secret-tool search --all reference veracrypt.password # Passwort auslesen secret-tool lookup reference veracrypt.password
Automatisch ausgeführtes Script zum Entsperren
Man fügt nun den Aufruf zu secret-tool in das automatisch-Entsperr-Skript /home/username/mount_veracrypt.sh (beispielsweise) ein:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
# Abrufen des VeraCrypt-Passworts aus dem GNOME Keyring
VERACRYPT_PASSWORD=$(secret-tool lookup reference veracrypt.password)
# Definiere den Pfad zum VeraCrypt-Volume und den Mount-Punkt
VERACRYPT_FILE="/home/username/data.vc"
VERACRYPT_MOUNT_POINT="/home/username/data"
# Prüfen, ob das Volume bereits gemountet ist
if ! mount | grep $VERACRYPT_MOUNT_POINT; then
echo Mounting VeraCrypt volume. Enter your user password or press Ctrl+C to abort. &&
veracrypt --text --mount $VERACRYPT_FILE $VERACRYPT_MOUNT_POINT --pim 0 --keyfiles "" --protect-hidden no --password $VERACRYPT_PASSWORD &&
echo Volume mounted.
else
echo Volume already mounted.
fi
Das Skript zu den Anmeldeskripten hinzufügen
ACHTUNG: Leider geht das komplett eingabefreie Prozedere unter aktuellen Linux-Versionen nicht (mehr). Das Script braucht bei der ersten Verwendung von veracrypt immer noch eine interaktive Eingabe des Anwenderpassworts, um den das Volume zu mounten. Um diese eine Eingabe kommt man aktuell nicht mehr herum.
Damit das Skript beim Anmelden automatisch ausgeführt wird, fügt man es am besten zu den Startanwendungen hinzu (im App-Menu Startprogramme). Da das Script ein Terminal für die Eingabe braucht, muss man als Startbefehl sowas angeben:
1
2
3
4
5
6
# Ubuntu mit gnome terminal
gnome-terminal -- /home/username/mount_veracrypt.sh
# Fedora mit ptyxis
ptyxis -- /home/username/mount_veracrypt.sh
# any Linux with xterm
xterm -e /home/username/mount_veracrypt.sh
Sicherheitsaspekte
- GNOME Keyring: Das Passwort für den GNOME Keyring wird durch das Login-Passwort geschützt, und es wird nur für die Dauer einer Sitzung entsperrt. Es bietet eine sichere Möglichkeit, Passwörter zu speichern.
secret-tool: Dassecret-tool-Kommando ist in der Lage, Passwörter aus dem Keyring sicher abzurufen, ohne dass sie im Klartext angezeigt werden. Somit kann man sich die Eingabe des (hoffentlich) länglichen VeraCrypt-Containerpassworts sparen.