Ich habe einen Debian Wheezy-Server, der schon eine Weile mit einem verschlüsselten Laufwerk läuft. Das Kennwort für das verschlüsselte Laufwerk ( /dev/sda5
) ging verloren, als meine verschlüsselte Kennwortdatei beschädigt wurde.
Ich möchte diesen Server neu starten können, aber das erfordert natürlich dieses Passwort. Gibt es eine Möglichkeit, das Kennwort zu ändern, ohne das alte zu kennen, da sich das Laufwerk eindeutig in einem entschlüsselten Zustand befindet?
cryptsetup luksChangeKey /dev/sda5
erfordert das Passwort des Volumes.
Ich könnte natürlich rsync
alles abbauen und wieder aufbauen, aber das möchte ich vermeiden. Ich habe die Erinnerung durchgesehen ( #cat /dev/mem | less
), konnte sie aber nicht finden (was sehr gut ist!).
Antworten:
Ja, Sie können dazu auf den Hauptschlüssel zugreifen, während das Volume entschlüsselt wird.
Das schnelle und schmutzige Hinzufügen einer neuen Passphrase:
device
undvolume_name
sollte entsprechend eingestellt werden.volume_name
ist der Name des entschlüsselten Volumes, in dem Sie sehen/dev/mapper
.Erläuterung:
LUKS-Volumes verschlüsseln ihre Daten mit einem Hauptschlüssel. Jede von Ihnen hinzugefügte Passphrase speichert einfach eine mit dieser Passphrase verschlüsselte Kopie dieses Hauptschlüssels. Wenn Sie also den Hauptschlüssel haben, müssen Sie ihn nur in einem neuen Schlüsselschlitz verwenden.
Lassen Sie uns den obigen Befehl zerreißen.
Dadurch werden eine Reihe von Informationen über das aktiv entschlüsselte Volume ausgegeben. Die Ausgabe sieht folgendermaßen aus:
Feld Nr. 5 ist der Hauptschlüssel.
Die Ausgabe davon wird nicht als Binärdaten angezeigt, aber dies bewirkt, dass der Hauptschlüssel für das Volume abgerufen und dann in rohe Binärdaten konvertiert wird, die später benötigt werden.
Dies weist cryptsetup an, dem Volume einen neuen Schlüssel hinzuzufügen. Normalerweise erfordert diese Aktion einen vorhandenen Schlüssel. Wir
--master-key-file
teilen ihm jedoch mit, dass wir stattdessen den Hauptschlüssel verwenden möchten.Dies
<(...)
ist die Ersetzung und Umleitung von Shell-Befehlen. Es führt im Grunde genommen alles aus, sendet die Ausgabe an eine Pipe und ersetzt die<(...)
durch einen Pfad zu dieser Pipe.Der gesamte Befehl ist also nur ein einziger Zeilenumbruch, um mehrere Vorgänge zu verdichten.
quelle
linear
nicht um ein offenes LUKS-Volume (falscher Wert fürvolume_name
im angegebenen Befehl). Ein offenes LUKS-Volume wirdcrypt
im 3. Feld angezeigt . In würdecryptsetup luksOpen /dev/foo bar
dervolume_name
Wert seinbar
./dev/mapper
Namenluks-.....
. Dies ist das Volume, das Sie verwenden müssen, nicht das LVM-zugeordnete logische Volume.dmsetup table
geändert hat. Zumindest für mich wird der Hauptschlüssel in der Spalte angezeigt$6
.