Lassen Sie mich zunächst sagen, dass ich für LUKS nicht neu bin. Ich habe LUKS mit Keyskripten mehrfach mit und ohne LVM eingerichtet. Ich bin mir allerdings nicht sicher, was hier eigentlich los ist. Ich habe ein System, das eine einzelne verschlüsselte Partition hat. Meine Fahrt ist wie folgt organisiert:
# lsblk NAME MAJ: MIN RM GRÖSSE RO TYP MOUNTPOINT sda 8: 0 0 128G 0 Festplatte └─sda1 8: 1 0 128G 0 Teil ├─vg0-root 253: 1 0 20G 0 lvm / ├─vg0-Secure 253: 6 0 100M 0 lvm │ └secure 253: 7 0 98M 0 crypt / root / Secure └─vg0-Swap 253: 4 0 1G 0 lvm [SWAP]
Meine /etc/crypttab
Datei sieht ungefähr so aus
# UUID ist hier nicht erforderlich, da sich der Pfad zum LV nicht ändert sichere / dev / vg0 / sichere keine luks, keyscript = / lib / cryptsetup / scripts / unsicher
Meine /lib/cryptsetup/scripts/insecure
Datei ist ausführbar und sieht ungefähr so aus
#!/bin/sh
# My actual file looks somewhat different because it dumps the key file with dd.
# This accomplishes virtually the same thing though.
echo -n "my-encryption-password"
Ich habe update-initramfs -k all -u
einige Male ausgeführt, nachdem ich crypttab konfiguriert und meine Keyscript-Datei eingerichtet habe.
Soweit ich das beurteilen kann, wird meine Skriptdatei nicht einmal in die Datei initrd.img kopiert. Jetzt, wo ich darüber nachdenke, glaube ich nicht, dass es in die Datei initrd.img kopiert wird, da die Root-Partition nicht verschlüsselt ist und die Skriptdatei von dort aus leicht zugänglich sein sollte.
Beim Neustart sieht das System den Datensatz von crypttab und fragt nach einem Kennwort (das in meinem Fall nicht vorhanden ist, da der einzige Schlüssel eine Schlüsseldatei voller zufälliger Bits ist), anstatt das Schlüsselskript zum Entsperren der LUKS-Partition zu verwenden. Ich habe versucht, LUKS aus dem LVM herauszunehmen und auf sda2 zu setzen, und die Ergebnisse waren die gleichen. Ich weiß auch, dass das Keyscript funktioniert, weil es cryptsetup luksOpen /dev/vg0/secure secure -d - <<< "$(/lib/cryptsetup/scripts/insecure)"
wie ein Zauber wirkt und meine LUKS-Partition entschlüsselt.
Ich habe dies in Ubuntu 16.04.2 und Ubuntu Mate 16.04.2 mit den gleichen Ergebnissen versucht. Ich habe zuvor ohne Probleme Keyskripte verwendet. Der einzige Unterschied war, dass meine / Partition in der Vergangenheit immer verschlüsselt war. Wenn jemand etwas Licht ins Dunkel bringen kann, würde ich es schätzen. Ich möchte nur eine sehr kleine verschlüsselte Partition, da ich vorhabe, dieses System zu klonen, und ich möchte es nicht mit der gesamten / partition verschlüsselten Partition klonen.
UPDATE 26.04.2017
Beim Durchsuchen von Protokollen habe ich eine Zeile mit dem folgenden Fehler gefunden, die keinen Sinn ergibt. Seit wann ist 'keyscript = / path / to / script' eine unbekannte Option für crypttab?
... systemd-cryptsetup [737]: Unbekannte / etc / crypttab-Option 'keyscript = / lib / cryptsetup / scripts / unsicher' gefunden, ignoriert.
Nur zum Spaß habe ich versucht, die Keyscript-Option zu entfernen und eine Schlüsseldatei zu verwenden, und alles hat einfach funktioniert! Tatsächlich habe ich andere Optionen wie Keyfile-Offset ausprobiert, und sie funktionieren auch. Daher liegt das Problem irgendwo bei der Keyscript-Option. Hat jemand eine Idee warum?
quelle
Antworten:
Probieren Sie die Option "initramfs" in Ihrer / etc / crypttab aus (gemäß /unix//a/447676/356711 ). Ihr
/etc/crypttab
würde dann so aussehen:Bitte beachten Sie, dass es möglicherweise ein Problem ist, dass sich Ihr Root-Fs in einem LVM-Container befindet. Dieses Problem wird auch in dem oben verlinkten Artikel erwähnt: " Dies funktioniert derzeit jedoch (zuverlässig) nur, wenn sich das Root-Gerät nicht in einem LVM befindet. " Glücklicherweise scheint eine Problemumgehung bereitgestellt zu werden.
Mein System sieht folgendermaßen aus:
... und das Folgende
/etc/crypttab
macht die Entschlüsselungsmagie mit einem Keyscript (!) in Ubuntu 18.04.2 LTS:Beachten Sie, dass die Entschlüsselung
sdc2_crypt
mit dem bereitgestellten Keyscript ohne die Option initramfs funktioniert (da es das Root-fs enthält und daher in der Startphase von initramfs "automatisch" berücksichtigt wird).md1_crypt
wurde erst während der Startphase von initramfs (und damit mit dem Keyscript gemäß dem Crypttab-Eintrag) entschlüsselt, nachdem ich die Option initramfs hinzugefügt hatte. Die spätere Entschlüsselung von md1_crypt während der Systemd-Startphase funktioniert nicht mit einem in crypttab angegebenen Keyscript, da das "systemd cryptsetup" das Optionsschlüsselskript nicht unterstützt (siehe https://github.com/systemd/systemd/pull/3007) .quelle