通过使用systemd仅输入一次密码来解锁跨越两个LUKS设备的根文件系统的正确方法是什么?

管道

我遇到了很多问题,要使加密的多磁盘根文件系统在Debian Jessie上的systemd下可靠地启动,而只需输入一次密码即可。以前,我已经在Debian中通过decrypt_derived在/ etc / crypttab中使用除第一个设备之外的所有设备上键脚本来解决此问题,并且效果很好。

但是,当引入systemd时,这不能很好地发挥作用。systemd-cryptsetup-generator不处理键盘脚本,当试图查找有关如何解决此问题的更多信息时,我仅从一位系统开发人员电子邮件中发现对某些自定义密码代理的模糊引用,它仅给出无用的建议,即“易于编写”其他代理。遵循的基本算法如下所示”,然后列出了要采取的13个步骤。显然不适合最终用户。

在Debian中,我通过使用几个内核选项使它在某种程度上起作用,这些选项告诉systemd/etc/crypttab在启动过程中忽略或完全忽略它。Debianupdate-initramfs将把脚本复制到initramfs并在systemd接管之前解锁设备,但是我发现这会导致以后出现问题,因为systemd现在没有用于解密设备的任何单位文件,因此依赖于它们的装载有时似乎挂起了或延误。尝试挂载btrfs子卷时,会发生中断。它们是从与root用户相同的物理设备安装的,但是systemd不知道这些设备已被解锁,并在启动时暂停。

TL; DR-我的实际问题:

处理跨越多个设备(例如btrfs系统,LVM镜像等)的加密根文件系统的系统方法是什么,您只需输入一次密码即可?我几乎不认为这是一个异常情况,因此希望这里有一个适当的方法可以做到这一点。

我想到了一些可能的解决方案:

  • 包含密钥文件的微型加密分区,该文件在root用户之前已解锁。根设备将引用此密钥文件。我该如何告诉systemd?
  • 在initramfs中运行的某种缓存密码代理,它会记住密码并将其交给启动时需要的所有设备。
  • 有人已经编写了一个模拟crypto_derived的systemd代理。如何将其集成到启动过程中?

我确实专门运行Debian,但是在尝试了几天的解决方案之后,我觉得这可能是一个更广泛的系统问题。

对角线

现在有一个解决此问题的方法(至少在Ubuntu 18.04+中,所以我认为是Debian和CentOS-7)。在这里描述报价单:

Systemd ...将解锁所有其他LUKS分区,如果

  1. 您要解锁的所有分区都使用相同的密码
  2. 您第一次正确输入根分区的密码。如果弄错了,则需要为其他所有LUKS分区再次输入

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Postgis:如何仅通过两个查询进行一次查询

来自分类Dev

awk 在一次从输入文件中读取的两个模式之间删除

来自分类Dev

如何仅使用一个输入语句来运行两个或多个任务?

来自分类Dev

使用Firebase的两个活动仅检索一次数据

来自分类Dev

如何使用Scala在一次通过中找到满足两个谓词的两个元素?

来自分类Dev

在 RxSwift 中下载一次的正确方法是什么?

来自分类Dev

使用角度我想通过输入仅一个输入两个名称相同但文件扩展名不同的文件

来自分类Dev

在两个Windows系统之间传输大文件(5 Gb)的不同方法是什么?

来自分类Dev

用一个域名设置两个IP的正确方法是什么?

来自分类Dev

为什么在使用(scanner).nextLine();的同时一次循环打印我的两个提示

来自分类Dev

一次在两个变量上运行方法

来自分类Dev

第一个bash脚本-仅输入一次root密码

来自分类Dev

使用Carrierwave一次存储文件的两个版本

来自分类Dev

当两个反应性数据突变超接近时,为什么Vue仅更新一次?

来自分类Dev

Google表格脚本:一次使用两个

来自分类Dev

比较两个Pair <?,?>的正确方法是什么?

来自分类Dev

表单数据通过XMLHttpRequest发布两次,一次作为一个空对象,一次使用正确的数据

来自分类Dev

组织同一模型的两个不同视图的正确方法是什么?

来自分类Dev

组织同一模型的两个不同视图的正确方法是什么?

来自分类Dev

Semantic-UI:两个侧边栏冲突,一次仅一个?

来自分类Dev

具有两个FK的SQLite表,但一次仅一个

来自分类Dev

Semantic-UI:两个侧边栏冲突,一次仅一个?

来自分类Dev

如何使用ssh解锁LUKS根分区(不是通过dropbear)

来自分类Dev

使用GSON比较两个JSON字符串的正确方法是什么?

来自分类Dev

使用GSON比较两个JSON字符串的正确方法是什么?

来自分类Dev

使用 LINQ 检查匹配属性的两个集合迭代的正确方法是什么?

来自分类Dev

SSH-仅输入一次密码

来自分类Dev

SSH-仅输入一次密码

来自分类Dev

如何通过仅输入同一个窗口小部件来将文本输入到两个文本窗口小部件中

Related 相关文章

  1. 1

    Postgis:如何仅通过两个查询进行一次查询

  2. 2

    awk 在一次从输入文件中读取的两个模式之间删除

  3. 3

    如何仅使用一个输入语句来运行两个或多个任务?

  4. 4

    使用Firebase的两个活动仅检索一次数据

  5. 5

    如何使用Scala在一次通过中找到满足两个谓词的两个元素?

  6. 6

    在 RxSwift 中下载一次的正确方法是什么?

  7. 7

    使用角度我想通过输入仅一个输入两个名称相同但文件扩展名不同的文件

  8. 8

    在两个Windows系统之间传输大文件(5 Gb)的不同方法是什么?

  9. 9

    用一个域名设置两个IP的正确方法是什么?

  10. 10

    为什么在使用(scanner).nextLine();的同时一次循环打印我的两个提示

  11. 11

    一次在两个变量上运行方法

  12. 12

    第一个bash脚本-仅输入一次root密码

  13. 13

    使用Carrierwave一次存储文件的两个版本

  14. 14

    当两个反应性数据突变超接近时,为什么Vue仅更新一次?

  15. 15

    Google表格脚本:一次使用两个

  16. 16

    比较两个Pair <?,?>的正确方法是什么?

  17. 17

    表单数据通过XMLHttpRequest发布两次,一次作为一个空对象,一次使用正确的数据

  18. 18

    组织同一模型的两个不同视图的正确方法是什么?

  19. 19

    组织同一模型的两个不同视图的正确方法是什么?

  20. 20

    Semantic-UI:两个侧边栏冲突,一次仅一个?

  21. 21

    具有两个FK的SQLite表,但一次仅一个

  22. 22

    Semantic-UI:两个侧边栏冲突,一次仅一个?

  23. 23

    如何使用ssh解锁LUKS根分区(不是通过dropbear)

  24. 24

    使用GSON比较两个JSON字符串的正确方法是什么?

  25. 25

    使用GSON比较两个JSON字符串的正确方法是什么?

  26. 26

    使用 LINQ 检查匹配属性的两个集合迭代的正确方法是什么?

  27. 27

    SSH-仅输入一次密码

  28. 28

    SSH-仅输入一次密码

  29. 29

    如何通过仅输入同一个窗口小部件来将文本输入到两个文本窗口小部件中

热门标签

归档