使用脚本传递 luks 密码来解锁加密的 rootfs,而不是从终端传递

Cha*_*Ram 8 linux encryption disk-encryption

我想开发一个脚本,当 cryptroot 要求用户解锁时,它传递 LUKS 密码而不是从键盘传递。我尝试修改 cryptroot 脚本,但无法运行它。

如果我能得到任何建议那就太好了。谢谢。

小智 11

@Quanten 之前的回答是错误的。

这应该足够了

echo "123" | cryptsetup luksOpen /dev/sda1 sda1 -
Run Code Online (Sandbox Code Playgroud)

密钥文件与密码不同。

  • 我认为没有必要或适当地声称另一个答案是不正确的。如果另一个答案不正确,您应该投反对票并评论说它不正确,但如果您知道答案,则绝对有必要提交正确的答案。考虑删除该句子。 (4认同)

小智 3

Cryptsetup 有一个选项-dor--keyfile并以破折号作为文件名,cryptsetup 从标准输入读取(请参阅手册页)

这样,您可以将密码从环境变量传递到 cryptsetup:

echo $password | cryptsetup luksOpen /dev/sdXX cryptroot -d -
Run Code Online (Sandbox Code Playgroud)

确切的语法取决于您的脚本。

如果这是一个好主意,从安全角度来看是另一个问题......