LUKS使用远程ubuntu服务器上的密钥文件自动解锁

是否有一种方法可以在启动时使用存储在远程机器上的密钥文件来自动解锁LUKS驱动器。 这个想法是确保服务器可以在没有任何用户input的情况下重启。 服务器位于公共云上,我无法encryption根分区。 将密钥文件留在机器上只会破坏encryption的目的。

因此,在远程计算机上通过像ssh这样的安全通道连接密钥文件。

曼多斯似乎做了我后,但我有两个问题。
– 所有文档都涉及到根文件系统。 它可以使用任何驱动器?
– 文档说明它只能在内部网上工作,如果本地和远程服务器通过VPN连接,那么这个工作是否正常?

这是最好的解决scheme吗? 唯一的解决scheme?

你可以在线获得各种解决scheme(比如这里 ),initrd中包含一个小型的ssh服务器(busybox + dropbear),在启动时运行它,然后联系它提供密码作为input。

你也许可以做一些事情:在initrd中,启动一个sshd服务器来等待远程连接,启动一个ssh连接到你的远程主机存储密钥,使用特定的ssh密钥,以获得密钥文件一个scp),然后用LUKS键解锁本地文件系统。

然而,这不是没有缺点:当然,确保在解锁完成后立即删除下载的LUKS密钥,否则你什么也得不到。 甚至更好,如果你find一种方法,只在需要的时间,而不是在任何地方存储在RAM中。 另外,任何能够读取initrd内容的攻击者都可以findssh连接及其ssh密钥,然后联系远程主机并下载LUKS密钥。 如果发生这种情况,这意味着你的攻击者显然是瞄准你,并花时间研究你的具体设置,这显然是脚本小子之外。 您至less应仔细查看下载密钥的所有连接,这些事件应与其他监视警报相关联,以显示给定的服务器确实正在重新启动(这又不会保护您免受可以修改您的initrd的攻击者的影响)。

你还必须考虑到networking在这个时候出现故障的情况, scp无法连接等等。所以同时有小sshd服务器的选项能够连接到它并且debugging东西不是馊主意。 或者看看您的云提供商可以提供什么样的带外解决scheme。