LUKS:如何添加更多密码槽(或删除/更改密码)

Mic*_*ter 13 encryption partitioning boot password luks

luks提供最多 8 个密码槽(=同时有效的多个密码)。
安装 Linux 我遇到的问题

  • 如何添加新密码槽
  • 如何删除密码槽
  • 如何查看有多少插槽处于活动状态
  • 如何测试密码对于容器/分区是否有效
  • 如何备份 luks 分区的标头(=数据实时保险...)

哪些命令可以帮助我完成这项工作?

Mic*_*ter 20

我假设分区是/dev/sda3
如果您不知道名称,您可以列出所有带有 的分区lsblk -f

添加新密码槽:
sudo cryptsetup luksAddKey /dev/sda3

  • 将使用下一个空闲密码槽
  • 首先它会要求输入现有的有效密码,然后您必须输入新密码。
    旧密码也将保持有效。

如果你想添加一个密钥文件(而不是密码),那就是
sudo cryptsetup luksAddKey /dev/sda3 MyKeyFile.txt

删除密码槽:

  • 情况一:sudo cryptsetup luksRemoveKey /dev/sda3
    =>您必须输入您要删除的密码(它会自动找到正确的密码槽)
  • 可能性 2:sudo cryptsetup luksKillSlot /dev/sda3 2
    => 这将删除密码槽 2(您必须输入任何其他密码槽的密码,但不需要输入槽 2 的
    密码 => 即使您不知道槽 2 的密码,这也可以工作
  • 情况 3:sudo cryptsetup luksRemoveKey --key-file MyKeyFile.txt /dev/sda3
    => 删除密钥文件MyKeyFile.txt(如果有效)

查看有多少个插槽处于活动状态:
sudo cryptsetup luksDump /dev/sda3
这将输出该分区的 luks 的所有设置。

测试密码对于分区是否有效:
sudo cryptsetup open --verbose --test-passphrase /dev/sda3
现在您可以输入密码,它会告诉您密码是否错误或属于哪个密码槽。
如果你想测试 KeyFile 是否有效,它的工作原理如下:
sudo cryptsetup open --verbose --test-passphrase --key-file MyKeyFile.txt /dev/sda3

备份luks分区的表头:
sudo cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file MyLuksHeader.dat
sudo chmod +r MyLuksHeader.dat
会创建一个16MB的文件。
这一点非常重要,需要保存。如果标头损坏,所有数据都会丢失,而无需备份!

列出所有加密文件系统:
sudo cat /etc/crypttab

如果您需要更多帮助,您可以输入man cryptsetup