在 Fedora 上使用 dracut 将 dropbear 添加到 initramfs

在 Fedora 上使用 dracut 将 dropbear 添加到 initramfs

我正在尝试将 dropbear 添加到我的 initramfs 中,以便我可以通过远程 SSH 会话解锁加密磁盘(如所述这里)。我正在运行 Fedora 16,它显然使用 dracut 来生成 initramfs 映像。任何人都可以解释(或提供链接)如何使用此设置将 dropbear 添加到 initramfs 吗?

更新:

我一直在尝试了解有关 dracut 的更多信息,但我发现那里没有大量信息。以下是我目前的理解,如果有人可以对此发表评论:

  • 我需要创建一个新的 dracut 模块,它将预安装挂钩安装到 initramfs 映像中。
  • 在尝试解锁/挂载 LUKS 文件系统之前(可能发生在“挂载”阶段),预挂载挂钩将启动 dropbear 服务器。
  • 启动 dropbear 后,我应该能够通过 SSH 连接到服务器并提供密码来解锁它,如另一篇文章中所述。
  • 我还需要添加一个 pre-pivot 挂钩,该挂钩将在引导进程 chroot 到最终根分区之前停止 dropbear 服务器。

答案1

我能够拼凑出自己的 dracut 模块,将 dropbear 添加到 initramfs 并在 init 期间启动它。它还将 dracut-crypt 模块中的 cryptroot-ask 脚本(要求您提供 LUKS 密码)替换为自定义脚本,该脚本等待您自行解锁文件系统(例如,通过 SSH)(以及一点额外的诡计)。

我已经把它贴上了位桶如果有人想使用或改进它。目前它不会在启动后关闭 dropbear 服务器,因此这可能是可以改进的地方。

相关内容