在 CentOS 9 Stream 上进行全盘加密并在启动时使用 TPM2 解密

在 CentOS 9 Stream 上进行全盘加密并在启动时使用 TPM2 解密

我正在配置一台需要完全驱动器加密的服务器,我想使用主板上可用的 TPM2 模块自动执行启动时解密驱动器的过程,但我无法让系统这样做。我有一个全新安装的 CentOS 9 Stream,它是使用唯一可用驱动器的自动 LVM 分区创建的,并且已加密为 LUKSv2。

安装操作系统后,我确保clevisclevis-luksdracut已安装。我还安装了clevis-systemdclevis-udisks2以防万一。

在此阶段,运行tpm2_pcrread报告了预期的寄存器。

然后我使用以下命令将驱动器绑定到 U 形夹:

sudo clevis luks bind -d /dev/<drive> tmp2 '{"pcr_bank":"sha256","pcr_ids":"0,1,7"}'

到目前为止没有问题。

然后我创建了一个名为 dracuttpm2.conf配置/etc/dracut.config.d/

add_dracutmodules+=" clevis clevis-pin-tpm2 crypt tpm2-tss "
install_items+=" /usr/bin/clevis "
hostonly="yes"

然后跑:

sudo dracut -f

在这个阶段,我认为这就是我所需要的一切,但似乎还不够。

然后我尝试使用 grub 选项进行启动rd.luks.options=<luks-UUID>=tpm2-device=auto,但没有任何反应。

知道可能是什么问题吗?

谢谢

答案1

根据文档,/etc/dracut.config.d/ 中不需要任何文件。尝试删除您创建的文件并使用 重新生成 initramfs dracut -f --regenerate-all

如果执行此操作并重新启动后,它仍然无法自动解密容器(有时您需要有点耐心,等待一段时间再输入密码),那么请发布 lsblk 和绑定到 tpm2 芯片的 clevis luks list -d /dev/yourblockdevice 的输出。

相关内容