第 24 章 在 web 控制台中使用 Tang 密钥配置自动解锁

您可以使用 Tang 服务器提供的密钥配置 LUKS 加密存储设备的自动解锁。

先决条件

流程

  1. 在 web 浏览器中输入以下地址来打开 RHEL web 控制台:

    https://<localhost>:9090

    连接到远程系统时,将 < localhost > 部分替换为远程服务器的主机名或 IP 地址。

  2. 提供您的凭证并点击 Storage。在 Storage 表中,点包含您计划添加的加密卷的磁盘来自动解锁。
  3. 在以下带有所选磁盘详情的页面中,点 Keys 部分中的 + 来添加 Tang 密钥:

    RHEL web 控制台:加密
  4. 选择 Tang keyserver 作为 Key source,提供 Tang 服务器的地址,以及解锁 LUKS 加密设备的密码。点击 Add 确认:

    RHEL web 控制台:添加 Tang 密钥

    以下对话框窗口提供了一个命令来验证密钥哈希是否匹配。

  5. 在 Tang 服务器上的终端中,使用 tang-show-keys 命令来显示密钥哈希以进行比较。在本例中,Tang 服务器运行在端口 7500 上:

    # tang-show-keys 7500
    x100_1k6GPiDOaMlL3WbpCjHOy9ul1bSfdhI3M08wO0
  6. 当 web 控制台中的密钥哈希与之前列出的命令的输出中的密钥哈希相同时,请点击 Trust key

    RHEL web 控制台:验证 Tang 密钥
  7. 在 RHEL 8.8 及更高版本中,选择加密的根文件系统和 Tang 服务器后,您可以跳过向内核命令行中添加 rd.neednet=1 参数,安装 clevis-dracut 软件包,并重新生成初始 RAM 磁盘(initrd)。对于非 root 文件系统,web 控制台现在启用 remote-cryptsetup.targetclevis-luks-akspass.path systemd 单元,安装 clevis-systemd 软件包,并将 _netdev 参数添加到 fstabcrypttab 配置文件中。

验证

  1. 检查新添加的 Tang 密钥现在是否在 Keys 部分中列出,且类型为 Keyserver

    RHEL web 控制台:列出 keyserver 密钥
  2. 验证绑定是否在早期引导时可用,例如:

    # lsinitrd | grep clevis-luks
    lrwxrwxrwx   1 root     root           48 Jan  4 02:56 etc/systemd/system/cryptsetup.target.wants/clevis-luks-askpass.path -> /usr/lib/systemd/system/clevis-luks-askpass.path
    …