一个相关的问题是:luksOpen 不会使用 keyfile 解密,除非提供了 --key-file 参数
然而,在 Ubuntu 仿生上cryptsetup 2.0.2
,我确实遇到了以下问题:
当使用文件中包含的密码打开 luks 加密设备时,它在直接调用中运行良好:
cat mypass.txt | sudo cryptsetup open --type luks /dev/sda1 enc-store
尝试使用记录在案的--key-file=-
参数,这应该会导致相同的行为
cat mypass.txt | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store
只是产生延迟的消息
此密码没有可用的密钥。
当尝试使用cryptdisks_start enc-store
依赖于--key-file=-
选项的脚本时,这尤其是一个问题,该选项会三次生成上述消息
这使生活变得不那么愉快。
我在这里错过了什么吗?
-谢谢!
这两个命令之间存在差异,如下所述
man cryptsetup
:这意味着如果您使用 、 或复制/粘贴来生成文件
echo
,vi
它很可能在末尾包含一个换行符。如果用作纯标准输入(无--key-file
选项),它将忽略其最后的换行符,但当用作 的参数时--key-file
,即使它是相同的标准输入 (--key-file=-
),它也会将此换行符包含在密码短语中:它变成一个新密码短语是无效的。要验证这一点:
应该按预期工作(以防我也删除任何 CR)。
如果这是原因,只需删除此换行符:例如
无论如何,您可能应该做的是从纯随机数生成一个新密码,将其放入安全文件中,并将其包含在单独的 LUKS 插槽中。