如何以非交互方式向“dmcrypt luksFormat”提供密码?

Hon*_*Lai 10 luks dmcrypt

我正在编写一个脚本来自动设置测试环境虚拟机。这个脚本应该自动为我格式化一个 dmcrypt+LUKS 分区,并带有特定的密码。因为这是一个本地测试环境,我不关心密码的安全性,我只希望整个 VM 设置过程是自动化的和非交互式的。

如何以非交互方式向“dmcrypt luksFormat”提供密码?我想使用密码短语,而不是密钥,因为在生产中我们也为 LUKS 使用密码短语。

Mic*_*ton 19

首先要做的是调用正确的命令:它是cryptsetup,不是dmcrypt

cryptsetup luksFormat /dev/vda2
Run Code Online (Sandbox Code Playgroud)

第二件事是您可以传递另一个参数来从文件或标准输入(使用-)读取密码。

echo -n "This isn't a very secure passphrase." | cryptsetup luksFormat /dev/vda2 -
Run Code Online (Sandbox Code Playgroud)

请注意,该-n标志是必要的,echo以防止将换行符附加到密码中。

有关cryptsetup传递密钥材料的其他方法,请参阅手册页。

  • 以这种方式创建音量后,我在解锁音量时遇到了一些困难。换行符把我绊倒了。`printf "这不是一个非常安全的密码。" | cryptsetup luksFormat /dev/vda2 -` 对我来说效果更好。天啊。 (4认同)