使用您自己的 GPG 密钥
如果用于自动安装的储存库包含未签名的元数据,则您通常必须使用 insecure=1
内核参数作为可自动安装的发行套件的选项,并在 AutoYaST 安装文件中使用 spacewalk/sles_no_signature_checks
代码段。
更为安全的替代方案是提供您自己的 GPG 密钥。
此方法仅适用于 SUSE 客户端。 |
-
创建 GPG 密钥。
-
使用它对软件包的元数据签名。
-
将其添加到安装媒体的初始 RAM 磁盘中。
-
有关如何创建密钥并使用它对元数据签名的信息,请参见 对储存库元数据签名。
-
有关如何将密钥添加到用于网络引导的安装媒体的信息,请参见用于 PXE 引导的自己的 GPG 密钥。
-
有关如何将密钥添加到用于从 CD-ROM 引导的安装媒体的信息,请参见 CD-ROM 中的自己的 GPG 密钥。
-
在您使用新 GPG 密钥对元数据签名时,任何已进行初始配置的客户端都不会知道这个新密钥。理想情况下,您应当在注册任何客户端之前对元数据签名。 如果一些已初始配置的客户端使用的是这些储存库,可以暂时对它们禁用 GPG 密钥检查。 |
1. 用于 PXE 引导的自己的 GPG 密钥
PXE 引导过程使用的初始 RAM 磁盘 (initrd
) 通常只包含 SUSE 的 GPG 密钥。您必须将自己的密钥添加到此文件中,这样就能使用它来检查软件包。
-
创建一个目录,其路径与引导过程中用来查找 GPG 密钥的路径相同:
mkdir -p tftproot/usr/lib/rpm/gnupg/keys
-
将您的 GPG 密钥复制到此目录中,并加上
.asc
后缀:cp /srv/www/htdocs/pub/mgr-gpg-pub.key tftproot/usr/lib/rpm/gnupg/keys/mgr-gpg-pub.asc
-
在顶层目录中,将内容打包并附加到属于安装媒体文件一部分的
initrd
中:cd tftproot find . | cpio -o -H newc | xz --check=crc32 -c >> /path/to/initrd
2. CD-ROM 中的自己的 GPG 密钥
您可以使用 mksusecd
实用程序修改安装映像。此实用程序包含在开发工具模块中。
-
创建一个目录,其路径与引导过程中用来查找 GPG 密钥的路径相同:
mkdir -p initrdroot/usr/lib/rpm/gnupg/keys
-
将您的 GPG 密钥复制到此目录中,并加上
.asc
后缀:cp /srv/www/htdocs/pub/mgr-gpg-pub.key initrdroot/usr/lib/rpm/gnupg/keys/mgr-gpg-pub.asc
-
使用
mksusecd
修改现有的 ISO 映像:mksusecd --create <new-image>.iso --initrd initrdroot/ <old-image>.iso