---- 生成一个很长的密钥既有优点也有缺点,长的密钥无疑安全性非常高,但是会导致加密的过程变得缓慢,另外,密钥过长,也会使证书的长度变大。
---- 缺省的密钥长度1024位已经够用了,确定了密钥的长度之后,就不能再改变它。
---- 最后,需要指定这个密钥对的有效日期,如果选择了生成ElGamal或者 DSA密钥对,它们需要指定密钥对的失效日期。
Please specify how long the key should be valid
0 = key does not expire = key expires in n days
< n > w = key expires in n weeks
< n > m = key expires in n months
< n > y = key expires in n years
Key is valid for? (0)
---- 对于大多数用户来说,密钥对没有失效期限是可以的。虽然在密钥对产生以后,可以改变它的有效日期,但是仍要谨慎选择这个参数。因为公钥发送出去以后,很难再改变其他用户拥有的您的公钥。
---- 现在需要提供一个用户标识,在签证的时候,公钥需要与用户标识绑定以证明您的真实身份。
---- You need a User-ID to identify your key; the software constructs the user id from Real Name, Comment and Email Address in this form:
---- \
---- Real name: 您的用户名
---- Email address: 输入您的email地址
---- Comment: 输入注释
---- 最后,GnuPG 需要一个私钥,这个私钥由用户自己保存
---- Enter passphrase: 输入密钥口令
---- 这个口令的目的是用来加密您的私钥,这样,即使有人偷走了您的私钥,没有这个口令,也无法使用, 这个口令的长度没有限制,但是,正如我们所知道的,一个短的口令是很容易被破解的。同样,如果您的口令是一个单词,也很容易被破解。
---- 2.证书的回收
---- 当您的密钥对生成之后,您应该立即做一个公钥回收证书,如果您忘记了您的私钥的口令或者您的私钥丢失或者被盗窃,您可以发布这个证书来声明以前的公钥不再有效。生成回收证书的选项是\。
---- [root@dev9 /]# gpg --output revoke.asc --gen-revoke mykey
---- 其中mykey 参数是可以表示的密钥标识,产生的回收证书放在revoke.asc文件里,一旦回收证书被发放,以前的证书就不能再被其他用户访问,因此以前的公钥也就失效了。
---- 3.密钥列表
---- 列出密钥使用 --list-keys 选项
---- [root@dev9 /]# gpg --list-keys
---- 4.输出公钥
---- 您可以输出您的公钥供您的主页使用,也可以把它放在密钥服务器上,当然,还可以使用于其他的途径。在您使用此公钥之前您首先要导出它。选项 --export 可以实现这个功能,在使用这个选项时,还必须使用附加的选项指明您要输出的公钥。
---- 下面的命令表示以二进制格式输出公钥:
---- [root@dev9 /]# gpg --output kapil.gpg --export kerberos@minigui.org
---- 如下命令表示以ASCII字符格式输出:
---- gpg --output kapil.gpg --export-armor> kerberos-key.asc
---- 5.导入公钥
---- 您可以把从第三方的公钥数据库中得到的公钥导入您的私有数据库,在与他人进行通讯时使用。
---- [root@dev9 /]#gpg --import < filename >
---- 其中,参数filename为公钥文件。
---- 例如:导入redhat的公钥,redhat.asc可以从redhat的主页上下载。
---- [root@dev9 /]# gpg --import redhat.asc
---- gpg: key :9B4A4024: public key imported
---- gpg: /root/.gnupg/trustdb.gpg: trustdb created
---- gpg: Total number processed: 1
---- gpg: imported: 1
---- 6.确认密钥
---- 导入密钥以后,使用数字签名来验证此证书是否合法。查看数字签名使用 --fingerprint 选项。
---- [root@dev9 /]# gpg --fingerprint < UID >
---- 其中,UID 为您要验证的公钥。
---- 7.密钥签名
---- 导入密钥之后,可以使用 --sign-key 选项进行签名,签名的目的是证明您完全信任这个证书的合法性。
---- 例如:[root@dev9 /]# gpg --sign-key < UID >
---- 其中,UID 是要签名的公钥。
---- 8.检查签名
---- 我们可以使用 --check-sigs选项来检查在上面我们对密钥所作的签名。
---- [root@dev9 /]# gpg --check-sigs < UID >
---- 这个选项可以列出此密钥文件的所有的签名。
---- 9.加密和解密
---- 加密和解密一个文件非常容易,如果您要给redhat发送一个加密文件,您可以使用redhat的公钥加密这个文件,并且这个文件也只有redhat使用自己的密钥才可以解密查看。
---- 加密一个文件可以使用下面的指令
---- [root@dev9 /]#gpg --sear < UID > < file >
---- 其中,UID是对方的公钥,file为您要加密的文件。
---- 如果您要解开一个其他用户发给您的文件可以使用下面的指令:
---- [root@dev9 /]#gpg -d < file >
---- 其中,file是您要解密的文件。解密过程中,GnuPG会提示您输入使用密钥所需要的口令,也就是在产生私钥时您所输入的口令。