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

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

我一直在网上寻找一种解决方案,可以让我自动解锁带有 FDE 的 ubuntu 16.04 LTS 机器(包括根分区)。我发现了很多指南允许使用 dropbear 进行远程解锁。那里的想法是允许用户通过 SSH 进入该机器以安全地传输密码。我想要的是相反的,并且不涉及尝试安装加密分区的机器上的 SSH 服务器。

我希望当我在 initramfs 中并且它即将尝试挂载加密分区时,它会启动 SSH 会话(例如使用 scp 抓取文件)以获取密码。我会有一台受信任的机器通过网络分发密码。我似乎找不到有关 initramfs 模块或脚本的信息来执行此类操作。当然,如果它尝试抓取该文件会更好,但如果该文件不可用,它只会默认抓取控制台输入。似乎如果有人在 initramfs 上运行 SSH 服务器,那么肯定会有一些类似 SCP 的客户端可用,但我找不到任何人这样做。

如果有人不知道,我想防止有人大规模窃取我的机器,但仍允许自动重启。我只想将密钥存储在远程位置的另一台不太可能同时被盗的机器上,并使用一种安全传输形式来获取这些密钥以进行启动。

提前致谢。

答案1

我整理了一个相当简单的用于通过 HTTPS 检索密钥的 keyscript。我想解决的问题和您一样 - 保护机器免遭无针对性的盗窃,同时仍允许无人值守重启。

密钥以加密形式存储在另一台服务器上,您可以相当轻松地配置基本身份验证 - 当然,一旦有人窃取了相关机器,这些都没有什么帮助!您仍然需要手动使钥匙不可用,以快速应对盗窃行为。

(我还使用 GeoIP 和 ISP 的 IP 范围来限制 HTTP 服务器的访问,如果我幸运的话,这可能会提供一些保护。)


我必须承认,在我的安排中加密密钥可能不会带来太多好处。(但它不会让事情变得更加复杂。)


曼陀罗是解决类似问题的尝试,但尝试确保当机器似乎被盗时,密钥将快速自动不可用。这意味着它需要对停机时间做出假设,并且需要稍微复杂的基础设施。

相关内容