encryption - 通过 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 即可。
有谁知道我错过了什么?为什么两个托管文件都不起作用?
解决方案
我做了更多阅读,以 escrow 结尾的文件不是 luks 卷的替代密码,但它包含当然加密的加密密钥。解密时,长字符串是加密密钥,其余文本中有一条线索,我承认我没有很好地阅读。
推荐阅读
- python - 获取列表中最匹配的句子
- python - 使用 youtube-search 模块列出超出范围的索引
- javascript - 如何按 2 位数年份验证日期
- reactjs - 如何防止我的 mobx 商店在切换路由时重置?
- javascript - 未删除复选框后单击AngularJs单选按钮
- java - PdfDocument 中的中心图像
- javascript - 如何在反应中改变历史对象的状态?
- c# - 如何 Cefsharp 'callbak' 是 pause() 和 resume()?
- python - 用图像和音乐文件编译 pygame 多个脚本
- javascript - Bootstrap 问题(使用 React)