我正在以编程方式调用 cryptsetup 并希望在命令行(不是交互式)按需传递密钥文件。
如何使用 cryptsetup 和 luks 在命令行中获取密钥文件?
您需要创建一个密钥文件:
dd if=/dev/random bs=32 count=1 of=/root/random_data_keyfile1
printf "YOUR PASSPHRASE" >/root/plaintext_passphrase_keyfile2
使文件只读到root:
sudo chmod 0400 /root/random_data_keyfile1
将密钥添加到 LUKS:
cryptsetup luksAddKey /dev/sdX /root/random_data_keyfile1
您必须在“/etc/crypttab”中添加一个条目:
echo "luks-$(cryptsetup luksUUID /dev/sdX) UUID=$(cryptsetup luksUUID /dev/sdX) /root/random_data_keyfile1" >>/etc/crypttab
重新启动以确保设备自动解锁。确保您拥有正确的设备 ID。