Grub2/LUKS 如何避免输入密码两次?

Grub2/LUKS 如何避免输入密码两次?

我使用的是最新的 OpenSUSE Tumbleweed 并且本指南没有为我工作。

我按照指南中的方式进行了所有操作,只是我没有生成新的随机密钥并将其添加到硬盘,而是使用了我一直使用的密码并将其写入/.root.key.

但我仍然被要求输入密码,但似乎 cryptsetup 或其他足够聪明的东西可以自动为我所有其他也使用与 SSD 相同密码的 HDD 尝试它。所以我必须为 Grub 输入它,然后在启动过程中再次要求我解锁 SSD。

如何查看是否/.root.key已添加到 initramfs 中?

答案1

我按照指南中的操作进行了所有操作,只是没有生成新的随机密钥并将其添加到硬盘,而是使用了我一直使用的密码并将其写入文件中。

文件中的密码工作正常,但它必须 不是 有换行符在最后。

验证它是否适用于--key-file选项:

cryptsetup open --verbose --key-file yourfile --test-passphrase /dev/yourdevice

如何查看是否/.root.key已添加到 initramfs 中?

lsinitrd使用、lsinitramfslsinitcpio自行解压其中之一。

mkdir /tmp/initramfs
cd /tmp/initramfs
gunzip < /boot/initrd.gz | cpio -div -H newc --no-absolute-filenames

如果例如不是 gzip 压缩而是 xz 或其他压缩,则此命令可能会有所不同。按照您认为合适的方式进行调整。

或者,如果 initrd 将您带到紧急 shell,您当然也可以使用它来探索 initrd 状态。

ls -al
hexdump -C .root.key # or similar

似乎 cryptsetup 或其他足够聪明的东西可以自动为我所有其他 HDD 尝试它,这些 HDD 也使用与 SSD 相同的密码

这是一个 systemd 功能,systemd-询问密码--接受缓存接受缓存的密码,即之前输入的密码)。也许它也已进入其他类型的 initramfs 中。这是一个很好的解决方案,输入两次密码还是可以接受的,连续输入10次......

并非所有发行版都使用此功能,我不知道它是否与指南中概述的密钥文件方法配合使用。您必须自己调试。

相关内容