我知道通过配置密码表我可以自动解锁卢克斯通过使用存储在机器中另一个驱动器上的密钥文件(该驱动器已提前手动解锁),可以访问驱动器。我一直想知道是否也可以使用存储在不同机器/设备中的密钥文件,例如通过 ssh 访问。
这就是我想要实现的目标。具有加密 LUKS 驱动器的计算机在启动时会查看本地网络中的特定 IP 地址,如果存在设备(Android 手机),它将从设备读取密钥文件并使用它来解锁其驱动器,否则它将询问密码。
有没有更好的方法来解决这个问题?我发现存在蓝色邻近它对锁屏做了类似的事情。
答案1
这实际上可以通过 LUKS 2 和cryptsetup-ssh。您只需添加 SSH 令牌即可
cryptsetup-ssh add --ssh-keypath=<path> --ssh-path=<path> --ssh-server=<ip/url> --ssh-user=<username> <device>
在哪里
ssh-keypath
是用于连接到服务器的 SSH 密钥的路径,ssh-server
是服务器的 IP 地址或 URL,ssh-user
是连接到服务器时使用的用户名ssh-path
是服务器上可以找到密钥文件的路径。
这将是一个所谓的 LUKS 元数据令牌(基本上是一个包含上述内容的小元数据 blob),当您尝试用它打开设备时,cryptsetup open
它将尝试使用令牌中的数据来获取密码。
请注意,这是一个相对较新的功能(它是在 cryptsetup 2.4.0 中添加的),并且仍然被认为是实验性的,并且您的发行版可能不附带 cryptsetup-ssh。我也不确定这在启动过程中与 systemd 的配合效果如何。
另一种方法称为网络绑定磁盘加密 (NBDE),它使用 Clevis-Tang 客户端和服务器以及 LUKS(支持 LUKS 1 和 LUKS 2)。您可以阅读更多相关信息这个 RHEL 文档。