GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Speicherplatz vor der 1. Partition des USB-Sticks als Luks Key verwenden?

Ich verwende Arch Linux mit einer verschlüsselten Luks-Root-Partition (bootet unverschlüsselt), mit noch einer Passphrase.
Jetzt habe ich eine Schlüsseldatei (3072 Byte), die folgendermaßen auf den USB-Stick geschrieben wird:

sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6

und auch als Zusatzpass setzen

sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin

Wenn ich die Partition manuell öffne mit:

sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root

alles funktioniert, die Partition ist gemappt und kann gemountet werden.
Nun meine Kernel-Parameter-Zeile in grub.cfg sieht so aus:

linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6

Aber beim Booten bekomme ich diesen Fehler:

No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.

Ich habe bereits Offset 2 anstelle von 1 ausprobiert, aber das gleiche Ergebnis. Mir ist aufgefallen, dass dort nicht steht, dass die Schlüsseldatei nicht gefunden/gelesen werden konnte, aber falsch war.

Es scheint wenig Dokumentation über diese Art des Speicherns von Luks-Schlüsseldateien zu geben. Arch-Wiki erwähnt es, aber sehr kurz und ich scheine konform zu sein, also denke ich, dass es möglich sein sollte.

in meiner mkinitcpio.conf MODULE, BINARYS und FILES sind leer und ich setze:

HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)

Blockieren ist also direkt vor Verschlüsseln.

Was ist hier das Problem?

Akzeptierte Antwort:

Vom ArchLinux-Verschlüsselungs-Hook (/lib/initcpio/hooks/encrypt ):

*)
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if="$resolved" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1
    ;;

Während es also das Lesen eines Schlüssels von einem Raw-Block-Gerät unterstützt, verwendet es eine Blockgröße von 1 (anstelle der Standardeinstellung 512), sodass Sie Ihre Werte mit 512 multiplizieren müssen, damit es funktioniert.

Also statt cryptkey=/dev/sdd:1:6 versuchen Sie cryptkey=/dev/sdd:512:3072 .


Linux
  1. So sichern oder klonen Sie Linux-Partitionen mit dem Befehl „cat“.

  2. So verschlüsseln Sie eine Partition mit DM-Crypt LUKS unter Linux

  3. Überprüfen Sie den Speicherplatz in Linux mit den Befehlen df und du

  4. Stellen Sie über SSH unter Linux oder Mac OS X eine Verbindung zu einem Server her

  5. So klonen Sie eine Linux-Festplattenpartition über das Netzwerk mit dd

So erstellen oder ändern Sie sicher Partitionen in Linux mit GParted

Erstellen virtueller Laufwerke mit der Linux-Befehlszeile

So überprüfen Sie die Speicherplatznutzung in Linux mit Ncdu

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

15 Dinge, die Sie vor der Verwendung von Kali Linux wissen sollten

So verschlüsseln Sie Blockgeräte mit LUKS unter Linux