![传递密钥文件来创建 LUKS 标头](https://linux22.com/image/1541569/%E4%BC%A0%E9%80%92%E5%AF%86%E9%92%A5%E6%96%87%E4%BB%B6%E6%9D%A5%E5%88%9B%E5%BB%BA%20LUKS%20%E6%A0%87%E5%A4%B4.png)
dm-crypt LUKS 实用程序'密码设置' 允许我们指定密钥文件代替密码。查看 cryptsetup 的代码,我明白如果密钥文件被指定,密码未使用。
我现在想使用 LUKS API 来实现这一点crypt_format
。但是,crypt_format
没有提供指定密钥文件的选项。稍后可以使用密钥文件添加新的密钥槽,但最初需要密码。
我不想使用密码。有什么办法可以实现吗?
答案1
阅读cryptsetup源代码,相关部分是这里和这里,看起来 cryptsetup 正在从密钥文件读取密钥(如果已设置)或从 stdin 读取。crypt_get_key似乎主要是读取文件到 DEFAULT_KEYFILE_SIZE_MAXKB,并进行大量额外处理,并且crypt_get_key_tty看起来很相似,所以我猜您可以读取该文件并将其内容用作密码。