如何使用 initramfs 中输入的密钥打开多个 LUKS 卷?

如何使用 initramfs 中输入的密钥打开多个 LUKS 卷?

我有一个基于 Debian 7.4(稳定)的服务器,配置为使用加密的(RAID1 + LVM)根分区(/boot 是未加密的常规分区),我在其中安装了 dropbear SSH 服务器,以便我可以远程输入 LUKS 加密密码。

除了根分区/卷之外,我还有其他 RAID1+cryptsetup+LVM 卷,我希望能够使用相同的密码打开它们。我搜索并发现我可以使用该脚本/lib/cryptsetup/scripts/decrypt_keyctl来缓存密码并使用相同的密码打开多个卷。但是如何使用此脚本以及在 initramfs 阶段输入的密码呢?

答案1

您可以将密码放入文件中,然后将其与--key-file参数一起重复使用。在该设置中使用随机密钥文件而不是明文密码可能更好。

echo -n password > pwfile
for luks in md1 md2 md3
do
    cryptsetup luksOpen --key-file=pwfile /dev/"$luks" luks"$luks"
done

就我个人而言,我对 LUKS 加密密钥文件使用了稍微不同的方法:

在此设置中,单个密码可解锁密钥文件存储,其中包含各种其他 LUKS 容器的随机密钥。这对于/bootUSB 设置特别有用,因此/boot无法被篡改,并且单独的硬件键盘记录器不足以获取内部磁盘的密钥。

相关内容