如何非交互式地提供密码给'dmcrypt luksFormat'?

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

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

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

 cryptsetup luksFormat /dev/vda2 

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

 echo -n "This isn't a very secure passphrase." | cryptsetup luksFormat /dev/vda2 - 

请注意,在echo需要-n标志以防止将换行符附加到密码上。

查看cryptsetup手册页,了解其他方式来传递密钥材料。