Ich fand, dass das Laufen sudo bash
und dann das Laufen ecryptfs-recover-private
als root (und nicht über sudo) funktionierte. Ich bin mir nicht sicher, warum es anders sein sollte.
Bearbeiten:
TL; DR:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek -
< Type your login password here >
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Sie sehen keine Eingabeaufforderung und müssen Ihr Anmeldekennwort blind in den obigen Befehl eingeben.
Ersetzen Sie die aaaaaaaaaaaaaaaa
und bbbbbbbbbbbbbbbb
unten durch die hexadezimalen Signaturen zwischen den Klammern der obigen Ausgabe in der folgenden Reihenfolge:
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Vorbereitungen
Es stellt sich heraus, dass nur das Ausführen von root für mich nicht zuverlässig funktioniert hat. manchmal schon, manchmal nicht. Grundsätzlich scheint ecryptfs fehlerhaft und ziemlich benutzerunfreundlich zu sein, was Anmeldekennwörter und Mount-Passphrasen oft verwirrt. Nachdem ich ein tiefes, dunkles Kaninchenloch hinuntergegangen bin, habe ich einige Tipps, die helfen sollten. Diese Hinweise gelten für Ubuntu 17.10, ecryptfs-utils 111-0, und Sie sollten vor dem Start root werden. Ich gehe davon aus, dass Sie Ihr Home-Verzeichnis von /mnt/crypt
(das bereits gemountet sein sollte) nach mounten möchten /mnt/plain
, und Sie sollten es durch user
den Benutzernamen ersetzen .
Einfach starten
Das erste, was Sie versuchen sollten, ist:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
Wenn das funktioniert, haben Sie Glück. Wenn nicht, wird möglicherweise eine Fehlermeldung von mount
ungefähr ausgegeben no such file or directory
. Dies ist äußerst irreführend: Was es wirklich bedeutet, ist, dass Ihre Mount-Passphrase falsch ist oder fehlt.
Holen Sie sich die Unterschriften
Hier ist der wichtige Teil: Wir müssen überprüfen, ob ecryptfs wirklich die richtigen Mount-Passphrasen versucht. Die Passphrasen müssen in den Linux-Kernel geladen werden, bevor ecryptfs Ihr Dateisystem bereitstellen kann. ecryptfs fragt den Kernel anhand ihrer Signatur nach ihnen. Die Signatur ist ein 16-Byte-Hex-Wert (und nicht kryptografisch sensibel). Sie finden die Passphrase-Signaturen, die ecryptfs erwartet:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
Erinnere dich an diese. Das Ziel ist es, Passphrasen mit diesen Signaturen in den Kernel zu laden und ecryptfs anzuweisen, sie zu verwenden. Die erste Signatur ( aaaaaaaaaaaaaaaa
) ist für die Daten und die zweite ( bbbbbbbbbbbbbbbb
) ist der FileName Encryption Key (FNEK).
Holen Sie sich die Mount-Passphrase
Dieser Befehl wird Sie bitten , für Sie anmelden Passwort (mit irreführende Aufforderung) und geben Sie Ihre Halterung Passwort:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Kopieren Sie dies, aber seien Sie vorsichtig! , da dies äußerst kryptografisch sensibel ist, sind die Schlüssel zum Königreich.
Versuchen Sie es mit einer interaktiven Halterung
Das nächste, was Sie versuchen sollten, ist:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Entscheidend dabei ist, dass Sie mount
Ihre (überempfindliche) Mount-Passphrase benötigen , die wir gerade kopiert haben (nicht Ihr Login-Passwort).
Dadurch werden Ihnen einige Fragen gestellt, und Sie können die Standardeinstellungen akzeptieren, außer Ja zu sagen Enable filename encryption
. Möglicherweise erhalten Sie eine Warnung und werden aufgefordert, die Signaturen zwischenzuspeichern. Sie können zu beiden Ja sagen, aber überprüfen Sie noch einmal, ob Sie die richtige Mount-Passphrase haben.
Sie sehen die Optionen, mount
die sich für Sie entschieden haben:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=aaaaaaaaaaaaaaaa
Mounted eCryptfs
Wenn die Signaturen falsch sind (nicht mit dem übereinstimmen, was Sie erhalten haben Private.sig
), funktioniert der Mount nicht.
... aber es wird sehr wenig hilfreich berichten, dass es getan hat. Sie müssen ls /mnt/plain
eine Datei erstellen, um sicherzugehen. An dieser Stelle können Sie auch /var/log/syslog
überprüfen, ob ecryptfs nach denselben Signaturen sucht wie wir.
Es gibt hier eindeutig zwei schwerwiegende Probleme mit ecryptfs, und wir müssen sie umgehen.
Laden Sie die Schlüssel in den Kernel
Wenn der interaktive Mount nicht geholfen hat, müssen wir die Schlüssel selbst in den Kernel laden und sie manuell in den Mount-Optionen angeben.
# ecryptfs-add-passphrase --fnek
Und fügen Sie Ihre (super-senstive) Mount-Passphrase ein, die von oben kopiert wurde. Dies sollte Folgendes ausgeben:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Manuell montieren
Jetzt werden die Passphrasen in den Kernel geladen, und wir müssen mount nur anweisen, sie zu verwenden:
# umount /mnt/plain
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Sie werden feststellen, dass die Optionen denen des interaktiven Mount ähneln, außer dass wir ecryptfs manuell mitteilen, was los ist.
Hoffentlich funktioniert das. Wenn nicht, können Sie überprüfen, ob die Schlüssel mit den richtigen Signaturen in den Kernel geladen wurden. Dabei keyctl list @u
sollten mindestens die beiden erwarteten Signaturen ausgedruckt werden.
ecryptfs-recover-private
Gerät einen Mount (2) -Fehler ausgibt. Versuchen Sie zu laufensudo ecryptfs-manager
, drücken Sie 4 (Beenden) und führen Sie das Original erneut ausecryptfs-recover-private
. sollte jetzt funktionierenecryptfs
Version von Version zu Version, und beim Aufrufen des Managers werden einfach einige Variablen festgelegt, die später vom Mount wiederverwendet werden. Gibt es eine Idee, wie dies automatisiert werden kann, damit ich meine Ordner nach jedem Neustart mounten kann?keyctl link @u @s
war eine sehr einfache Lösung für mich. Credits gehen hier: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126