首页 > 解决方案 > 通过 kickstart 在 centos 上进行磁盘加密托管文件

问题描述

我正在尝试通过 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 即可。

有谁知道我错过了什么?为什么两个托管文件都不起作用?

标签: encryptionredhatluks

解决方案


我做了更多阅读,以 escrow 结尾的文件不是 luks 卷的替代密码,但它包含当然加密的加密密钥。解密时,长字符串是加密密钥,其余文本中有一条线索,我承认我没有很好地阅读。


推荐阅读