我正在遵循Debian 开发者的全盘加密指南。我目前正在进行第 4 节第 3 步 - 编辑/etc/crypttab
。
在指南中,在第 3 节中,他们为其他内容设置了键槽 0,现在在第 4 节中设置了键槽 1。
但是,在我的设置过程中,第 3 部分默认为键槽 1,因此对于第 4 部分,我需要使用键槽 0,方法是将其添加到我的/etc/crypttab
:
root_crypt UUID=... /etc/keys/root.key luks,discard,key-slot=0
(指南在key-slot=1
这里代替)
我认为。我担心我可能错了,key-slot=0
在应该 put 的时候put key-slot=1
,所以 LUKS 解密时查找错误的槽位,由于密码错误而无法解密,并且无法继续。由于所有内容都已加密,因此我无法使用实时操作系统来修复它。
所以我的问题是:该key-slot=
选项是否使 LUKS只尝试该键槽,或者先尝试该键槽,如果失败则尝试其他键槽?假设我错了,key-slot=0
在我应该 put 的时候put key-slot=1
,LUKS 会尝试插槽 0,失败,然后尝试插槽 1,并成功吗?
我已通读/etc/crypttab 的联机帮助页,除了对 的引用之外什么也没找到cryptsetup -S
,但找不到描述此选项的联机帮助页。我只能在 cryptsetup 上找到一页,其中不包含 -S 选项。
非常感谢!
cryptsetup 手册分为几页。手册
crypttab
页应引用cryptsetup-open
手册页。因此,您必须更正或删除
key-slot
中的选项/etc/crypttab
。请注意,默认情况下,会尝试所有插槽,因此显式指定关键插槽的唯一优点是速度提高。
您可以从实时 USB 恢复(我认为 Debian netinst 映像具有必要的工具,但我最近没有尝试过)。您需要的文件未加密,因为需要它来解密系统的其余部分。您还应该能够从 initramfs 修复您的系统(您没有得到 shell 提示吗?),通过手动运行
cryptsetup
和mount
任何其他必要的步骤,直到您获得对根文件系统的访问权限。是的,通常是这样。
它相当于
--key-slot
选项man cryptsetup-open
:这意味着性能优化。当使用多个键槽时,检查每一个键槽需要很长时间。
此外,LUKS 2 还允许通过设置键槽优先级(正常、首选、忽略)
cryptsetup config --priority
。然后,其行为更像您所描述的,它将首先尝试首选的键槽,然后是正常的键槽。为什么不在Live/Rescue环境中解密呢?
或者,您可以添加/更改预期密钥槽的密码,这样您就根本不必挂载/chroot 解密的系统。