我已经使用 cryptsetup 加密外部硬盘。
我可以毫无问题地使用加密硬盘的方式:
/sbin/cryptsetup luksOpen /dev/sdc1 backup
// typing password
// mounting the partition
// doing something
// unmounting the partition
/sbin/cryptsetup luksClose /dev/mapper/backup
但我的下一个要求是能够在不输入密码的情况下做到这一点。
然后我通过以下命令使用我的密码哈希值创建了一个二进制文件:
hashalot -n 32 ripemd160 > volume_key
进而:
/sbin/cryptsetup luksOpen -d volume_key /dev/sdc1 backup
但我收到此错误:
Command failed: No key available with this passphrase.
大家有什么想法吗?
答案1
如果你像我一样来到这里寻找答案,答案是这样的:
然后我通过以下命令使用我的密码哈希值创建了一个二进制文件:
hashalot -n 32 ripemd160 > volume_key
然后你必须:
/sbin/cryptsetup luksAddKey <device> volume_key
Enter any passphrase: <- enter current passphrase aka: "typing password"
现在 cryptsetup 已将您的文件 (volume_key) 添加为您的卷的另一个密钥。从技术上讲,您可以将任何文件用作此密钥。jpg 图像,甚至任何充满随机文本的文件。
最后,现在你可以这样做:
/sbin/cryptsetup luksOpen -d volume_key /dev/sdc1 backup
如果存在密钥文件,cryptsetup 将使用它;如果找不到该文件,则询问您的密码。
答案2
cryptsetup 手册页对 -d 参数提出了以下建议:“如果您想通过密钥文件设置新密钥,则必须使用位置参数来传入 luksFormat 或 luksAddKey。”
答案3
volume_key 文件的内容将由 cryptsetup 进行散列,因此您不需要自己执行此操作?