自动挂载 cryptmount/加密循环设备

自动挂载 cryptmount/加密循环设备

由于 ecryptfs 文件名大小的限制,我决定使用加密分区。由于我已经使用 ecryptfs,因此对于我的主文件夹,我不需要密钥来保护密码。

我需要一个脚本,可以非交互地挂载给定文件中包含的加密文件系统,并使用存储在二进制文件中的密钥。我愿意接受任何可以解决这个问题的方案,只要我可以使用稀疏文件作为后备存储(因此不需要 truecrypt,也不需要 cryptmount-setup)。

答案1

可以使用 dm-crypt/LUKS/cryptsetup 来实现此目的,具体步骤如下:

  1. 创建稀疏磁盘映像文件:dd if=/dev/zero of=IMAGEFILE bs=1 count=1 seek=SIZE
  2. 在文件中生成随机密钥:dd if=/dev/random of=KEYFILE bs=1024 count=1
  3. 使用cryptsetup luksFormat --key-file KEYFILE --cipher aes-xts-plain --size 512 IMAGEFILE(或者使用另一个密码和密钥长度。请注意,由于 XTS,这里的 512 将为您提供 256 位的 AES。)
  4. 打开加密容器:cryptsetup luksOpen --key-file KEYFILE IMAGEFILE NAME
  5. 在 上创建文件系统/dev/mapper/NAME
  6. 照常挂载文件系统。

您的脚本只需执行步骤 4 和 6。要卸载/关闭,请卸载文件系统并调用cryptsetup luksClose NAME

请注意,使用稀疏文件将泄露磁盘哪些扇区已被使用的信息(与在加密分区之前不使用随机数据覆盖分区相同)。您可以自行决定是否同意。

另请注意,删除文件不会使磁盘映像变小。稀疏文件将单调增长。

相关内容