GPG
这里参考了"阮一峰的网络日志"来进行实验的,该博客地址如下:
http://www.ruanyifeng.com/blog/2013/07/gpg.html
一、安装
sudo apt-get install gnupg
我执行安装命令时,发现系统已经自带了GPG,所以打算直接使用自带的GPG来做实验。
我这里的版本是1.4.20。
它有的用法以及其它很多参数,可以通过–help来查看
二、生成密钥
gpg --gen-key
回车之后,会跳出一大段的文字,让我们选择要使用的加密算法,默认是加密和签名都使用REA,这里我也选择了默认项。
接下来是密钥长度,越长越安全,默认是2048位,这里也是选择默认,回车即可。
然后是期限,说明如下:
这里由于密钥只是我个人使用,并且能够保证有效的保管私钥,因此选择了永不过期,也是默认选项。
回答完这些问题之后,系统会让我们确认信息,选y之后可以进入个人信息的提供环节:
这里填写真实信息之后,会让我们来最后确认一次:
输入O表示确定之后,系统会让我们设定私钥的密码,这样一方面可以防止误操作,也可以防止系统被侵入时有人擅自动用私钥。
这里一切就绪之后,密钥生成就开始了,这个时候,它会提示我们做一些琐事,并且如果做的不够多,它还会有提示:
三、遇见错误及解决方式
第一次走完整个步骤的时候,它报出了如下的错误:
我以为是没有联网的缘故开了热点又进行了一次,依然报了这个错,于是通过百度找到了一种错误原因以及解决方式:
今天在fedora的中文翻译组上订阅的时候,用到gpg,生成密钥的时候,提示有gpg:找不到可写的公钥钥匙环:eof (gpg: no writable public keyring found: eof)的错误,百度上搜了一下,竟然就一个网页,而且还不对题;随后google一下,把对应的英文提示搜出来了,再用这英文提示搜一下,嘿,找到答案了:
cd /root
mkdir .gunpg
chmod 555 .gnupg/
原来是因为没有.gunpg这个目录造成的。
这里我看了我的root目录,发现有.gunpg这个隐藏目录,不过权限却不是555,所以我想可能这里需要root权限才能解决问题,所以我用如下命令运行了gpg
sudo gpg --gen-key
并且再跑了一遍整个流程
此时成功生成了公钥和私钥
这里的D9358A6C是我"用户ID"的Hash字符串,可以用来代替"用户ID"
四、生成"撤销证书"
生成"撤销证书"的目的是为了在以后密钥作废时,可以请求外部的公钥服务器来撤销公钥。
gpg --gen-revoke [用户ID