J'utilise arch linux avec une partition racine luks cryptée (démarrage non crypté), avec une phrase de passe pour le moment.
Maintenant, j'ai un fichier clé (3072 octets), qui est écrit sur la clé USB de cette façon :
sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6
et également défini comme passe supplémentaire
sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin
Lorsque j'ouvre la partition manuellement avec :
sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root
tout fonctionne, la partition est mappée et peut être montée.
Maintenant ma ligne kernel-parameter-line dans grub.cfg
ressemble à ceci :
linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6
Mais au démarrage, j'obtiens cette erreur :
No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.
J'ai déjà essayé le décalage 2 au lieu de 1, mais même résultat. J'ai remarqué qu'il ne dit pas que le fichier clé n'a pas pu être trouvé/lu, mais qu'il était incorrect.
Il semble y avoir peu de documentation sur cette façon de stocker le fichier de clés luks. Arch-wiki le mentionne, mais très brièvement et je semble être conforme, donc je pense que cela devrait être possible.
dans mon mkinitcpio.conf
MODULES, BINAIRES et FICHIERS sont vides et je mets :
HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)
donc bloquer est juste avant chiffrer.
Quel est le problème ici ?
Réponse acceptée :
Depuis le crochet de chiffrement d'ArchLinux (/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
;;
Ainsi, bien qu'il prenne en charge la lecture d'une clé à partir d'un périphérique de bloc brut, il utilise une taille de bloc de 1 (au lieu de la valeur par défaut 512), vous devez donc multiplier vos valeurs par 512 pour que cela fonctionne.
Donc au lieu de cryptkey=/dev/sdd:1:6
essayez cryptkey=/dev/sdd:512:3072
.