cryptsetup可以从/ etc / crypttab读取映射吗?

我有一个虚拟化的CentOS 7服务器,需要安装多个受密码保护的encryption卷。 我无法在启动时自动映射设备,因为在启动过程中我无法访问控制台input解密密码。 重新启动系统后,我必须手动运行

cryptsetup luksOpen <device> <name> 

将每个底层块设备映射到encryption设备。 这需要logging每个底层块设备的UUID以及它所映射的名称。 有没有简单的方法来自动化这个过程? 我可以使用noauto关键字将信息添加到/etc/crypttab ,以防止设备在启动时挂载。 但是,我不能让cryptsetup使用这个文件中的信息。

如果有一个像cryptsetup luksOpen <name>这样的命令,它将读取/etc/crypttab来查找底层块设备的名称(类似于如果在/etc/fstab定义可以mount <mountpoint>的方式/etc/fstab )。

有没有办法让cryptsetup从/etc/crypttab读取映射?

我想你想尝试systemd-cryptsetup-generator

正常情况下,这个过程在initramfs引导过程中运行,dynamic生成systemd单元,解密 /etc/crypttab列出的每个块设备 。 然后,您可以随时启动这些单位,并会提示您input必要的密码。

由于这是一台虚拟机,因此您应该可以访问虚拟控制台,这意味着您可以简单地encryption文件系统,并在启动时提供密码。 当然,无论何时input密码,encryption文件系统的安全性都会受到影响 ,只需在虚拟机中使用即可。

看看cryptdisks_start和cryptdisks_stop ,他们就是这么做的。

 # cryptdisks_start <name> # mount <mountpoint> ...stuff... # umount <mountpoint> # cryptdisks_stop <name>