Red Hat Training
A Red Hat training course is available for Red Hat Satellite
3.2. RHN 软件包的数字签名
所有通过 RHN 发布的软件包都应该有一个数字签名。数字签名根据唯一的私钥创建,并可使用对应的公钥验证。在创建软件包后,SRPM (源 RPM) 和 RPM 可以使用一个 GnuPG 密钥进行数字签注。在安装软件包前,公钥可以被用来验证这个软件包是否被可信任的一方签注并在签注后没有被修改。
3.2.1. 生成 GnuPG 密钥对
GnuPG 密钥对包括私钥和公钥。要生成一个密钥对,请在 shell 中以 root 用户的身份运行以下命令:
gpg --gen-key
如果您以非 root 用户的身份运行这个命令,您将会看到以下信息:
gpg: Warning: using insecure memory!
出现此信息是因为非 root 用户无法锁定内存页。因为您不想让任何人得到您的专用 GnuPG 密钥或者密码短语,所以您想要以 root 户生成密钥对。root 用户可以锁定内存页,就是说永远无法在磁盘中写入信息。
在执行了生成一个密钥对的命令后,您将会看到与以下类似的、包括了密钥选项的引导屏幕:
gpg (GnuPG) 1.2.6; Copyright (C) 2004 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and ElGamal (default) (2) DSA (sign only) (4) RSA (sign only) Your selection?
接受默认选项:
(1) DSA 和 ElGamal
。这个选项允许您创建一个数字签名并使用两种加密技术进行加密/解密。输入 1
后按 Enter 键。
接下来,选择密钥的长度,即密钥应有的长度。密钥的长度越大,它被破解的可能性就越小。推荐您创建最短为 1024 位的密钥。
下一个选项将让您指定密钥的有效期。如果您指定了密钥过期的日期,任何使用您的公钥的用户都需要被告知过期的时间并在过期后获得新密钥。我们推荐您使用没有过期时间的设置。如果您没有选择一个过期的日期,会提示您确认您的选择:
Key does not expire at all Is this correct (y/n)?
按 y 来确认您的决定。
您的下一个任务是提供一个包括您的名称、电子邮件地址和注释(可选的)的用户 ID,其中的每项都需要独立的内容。完成后,您会看到您输入内容的总结。
一旦确定了您的选择,您需要输入一个密码短语(passphrase)。
注意
和您的帐户密码一样,一个好的密码短语对 GnuPG 的安全性非常重要。在您的密码短语中使用混和的大小写字母、数字和标点符号将会增加其安全性。
在输入并验证了您的密码短语后,就生成了您的密钥。此时会出现一个类似如下的信息:
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. +++++.+++++.++++++++....++++++++++..+++++.+++++.+++++++.+++++++ +++. ++++++++++++++++++++++++++++++++++++++..........................++++
当这些行动完成后,您的新密钥会被放置在 root 用户主目录的
.gnupg
目录中。密钥放在这个位置是因为您以 root 用户的身份运行了这个命令。要列出您的 root 密钥,请使用命令:
gpg --list-keys
输出内容类似如下:
/root/.gnupg/pubring.gpg ---------------- pub 1024D/B7085C8A 2002-02-18 Your Name<you@example.com> sub 1024g/E12AF9C4 2002-02-18
要获得您的公钥,使用以下命令:
gpg --export -a 'Your Name' > public_key.txt
您的公钥被写在
public_key.txt
文件中。
这个公钥非常重要。它是必须被部属在所有通过
up2date
接收自定义软件包的客户端系统中的密钥。《Red Hat Network 客户端配置指南》介绍了在一个机构的客户端系统中部属该密钥的方法。