我有一个加密卷,我最初以交互方式为其设置了密码,它可以很好地解密分区。我通过以下两种方式使用密钥文件添加了更多密钥:
cryptsetup --keyfile=passphrase luksAddKey /dev/sdax
cryptsetup --luksAddKey /dev/sdax passphrase
Run Code Online (Sandbox Code Playgroud)
其中 passphrase 是包含密钥的文件,/dev/sdax 是加密卷。
然后我检查了密码是否有效使用
cat passphrase | cryptsetup --test-passphrase luksOpen /dev/sdax
dd if=passphrase bs=1 count=256 | cryptsetup --test-passphrase luksOpen /dev/sdax
Run Code Online (Sandbox Code Playgroud)
但他们都失败了:“此密码没有可用的密钥。” 使用 --key-file 选项的以下命令有效:
cryptsetup --test-passphrase --key-file passphrase luksOpen /dev/sdax
Run Code Online (Sandbox Code Playgroud)
在这一点上,我尝试查看传递密码内容的方法是否与唯一有效的密码(交互设置)一起使用。
echo "manually written working passphrase" > interactive_pass
cat interactive_pass | cryptsetup luksAddKey /dev/sdax
Run Code Online (Sandbox Code Playgroud)
这次它工作得很好。这两种方法和两个密钥文件有什么区别?我需要第一种管道文件内容的方法来处理从密钥文件添加的密码,因为它似乎是在 crypttab 中使用脚本时唯一可能的方法。是否可以?