我正在编写一个脚本,可以自动设置测试环境虚拟机。此脚本应自动为我格式化 dmcrypt+LUKS 分区,并使用特定密码。因为这是一个本地测试环境,所以我不关心密码的安全性,我只希望整个 VM 设置过程是自动化和非交互式的。
我如何以非交互方式向“dmcrypt luksFormat”提供密码?我想使用密码,而不是密钥,因为在生产中我们也使用 LUKS 的密码。
答案1
首先要做的是调用正确的命令:是cryptsetup
,而不是dmcrypt
。
cryptsetup luksFormat /dev/vda2
第二件事是,您可以传递另一个参数来从文件或标准输入(使用-
)读取密码。
echo -n "This isn't a very secure passphrase." | cryptsetup luksFormat /dev/vda2 -
请注意,该-n
标志是必需的,以echo
防止在密码后附加换行符。
请参阅cryptsetup
手册页以了解传递密钥材料的其他方法。
答案2
如何使用 sudo 发送密码
echo 'passphraze' | echo 'sudopass' | sudo -S cryptsetup luksOpen /dev/sda5 media -d -