我正在尝试通过 PXE 自动安装 centos 并使用加密文件系统启动。如果我们遗漏了密码,我们想使用托管文件并使用附加到从 Web 服务器获得的 x509 证书上的公钥加密它们。kickstart 文件中的相关行是
logvol /home --fstype ext4 --name=lv02 --vgname=vg01 --size=1 --grow --encrypted --escrowcert=http://10.0.2.2:8080/escrow.crt --passphrase=XXXX --backuppassphrase
将证书作为 PEM 编码保留在 Web 服务器上而不是 DER 上似乎并不重要,两者都可以工作。
文件系统是使用提供的密码创建和加密的,并且可以在重新启动时打开而没有问题。两个托管文件按预期生成,如果使用包含私钥和第一个托管文件的 NSS 数据库,我获得了我认为是密码的内容,但它不会解锁磁盘。例如:
# volume_key --secrets -d /tmp/nss e04a93fc-555b-430b-a962-1cdf921e320f-escrow
Data encryption key:<span class="whitespace other" title="Tab">»</span>817E65AC37C1EC802E3663322BFE818D47BDD477678482E78986C25731B343C221CC1D2505EA8D76FBB50C5C5E98B28CAD440349DC0842407B46B8F116E50B34
我假设从 817 到 B34 的字符串是密码,但在 cryptsetup 命令中使用它不起作用。
[root@mypxetest ~]# cryptsetup -v status home
/dev/mapper/home is inactive.
Command failed with code 19.
[root@mypxetest ~]# cryptsetup luksOpen /dev/rootvg01/lv02 home
Enter passphrase for /dev/rootvg01/lv02:
No key available with this passphrase.
Enter passphrase for /dev/rootvg01/lv02:
当出现提示时,我粘贴了长数字字符串,但得到了 No key available 消息。但是,如果我使用 kickstart 文件或备份托管文件中指定的密码,磁盘会解锁。
# volume_key --secrets -d /tmp/nss e04a93fc-555b-430b-a962-1cdf921e320f-escrow-backup-passphrase
Passphrase:<span class="whitespace other" title="Tab">»</span>QII.q-ImgpN-0oy0Y-RC5qa
然后在 crypsetup 命令中使用字符串 QII.q-ImgpN-0oy0Y-RC5qa 即可。
有谁知道我错过了什么?为什么两个托管文件都不起作用?