使用您自己的 GPG 密钥

如果用于自动安装的储存库包含未签名的元数据,则您通常必须使用 insecure=1 内核参数作为可自动安装的发行套件的选项,并在 AutoYaST 安装文件中使用 spacewalk/sles_no_signature_checks 代码段。

更为安全的替代方案是提供您自己的 GPG 密钥。

此方法仅适用于 SUSE 客户端。

过程:包含您自己的 GPG 密钥
  1. 创建 GPG 密钥。

  2. 使用它对软件包的元数据签名。

  3. 将其添加到安装媒体的初始 RAM 磁盘中。

在您使用新 GPG 密钥对元数据签名时,任何已进行初始配置的客户端都不会知道这个新密钥。理想情况下,您应当在注册任何客户端之前对元数据签名。

如果一些已初始配置的客户端使用的是这些储存库,可以暂时对它们禁用 GPG 密钥检查。

1. 用于 PXE 引导的自己的 GPG 密钥

PXE 引导过程使用的初始 RAM 磁盘 (initrd) 通常只包含 SUSE 的 GPG 密钥。您必须将自己的密钥添加到此文件中,这样就能使用它来检查软件包。

过程:将 GPG 密钥添加到初始 RAM 磁盘中
  1. 创建一个目录,其路径与引导过程中用来查找 GPG 密钥的路径相同:

    mkdir -p tftproot/usr/lib/rpm/gnupg/keys
  2. 将您的 GPG 密钥复制到此目录中,并加上 .asc 后缀:

    cp /srv/www/htdocs/pub/mgr-gpg-pub.key tftproot/usr/lib/rpm/gnupg/keys/mgr-gpg-pub.asc
  3. 在顶层目录中,将内容打包并附加到属于安装媒体文件一部分的 initrd 中:

    cd tftproot
    find . | cpio -o -H newc | xz --check=crc32 -c >> /path/to/initrd

2. CD-ROM 中的自己的 GPG 密钥

您可以使用 mksusecd 实用程序修改安装映像。此实用程序包含在开发工具模块中。

过程:将 GPG 密钥添加到安装 ISO 映像中
  1. 创建一个目录,其路径与引导过程中用来查找 GPG 密钥的路径相同:

    mkdir -p initrdroot/usr/lib/rpm/gnupg/keys
  2. 将您的 GPG 密钥复制到此目录中,并加上 .asc 后缀:

    cp /srv/www/htdocs/pub/mgr-gpg-pub.key initrdroot/usr/lib/rpm/gnupg/keys/mgr-gpg-pub.asc
  3. 使用 mksusecd 修改现有的 ISO 映像:

    mksusecd --create <new-image>.iso --initrd initrdroot/ <old-image>.iso