FROM: http://www.blogme.cn/node/3920 wingsun
Debian下使用PGP签名的软件很多,一般而言都是使用GNU PGP这个软件。
?
安装:
?
首先,在安装之前更新一下你的软件包库索引,执行:
apt-get update
然后开始安装软件:
apt-get install gnupg
如果无法安装,则必须检查你的sources.list编写是否正确,是否包含了指向含有gnupg的软件包源,如果没有则请修改它正确。
如果你使用GUI环境,你可以安装gnupg的图形化前端,在GNOME下可以使用seahorse。
apt-get install seahorse
你首先需要的是创建一个签名,一个属于你自己的签名。在命令行的模式下执行:
gpg —gen-key
然后按照提示输入相应的信息就可以了,我建议不要输入comment的信息,这样会带来一些麻烦。需要必须输入的信息主要有:full name,comment和email,这三个信息就会构成full name (comment)
生成好你的key之后,下一步就是将它发布到互联网上。发布互联网上,首先需要一个key server,一般安装好后的默认key server都是subkeys.pgp.net。你也可以通过修改.gnupg/gpg.conf中的keyserver信息来改变你的key server。通过如下命令可以将你的key发布到服务器上:
gpg —send-keys YourKeyID
这将会把你的公匙发布到互联网上。你可以到互联网上的某一个key server主页去查询看看你的key是否已经发布到服务器上了,也可以通过gpg —search-keys来查找你的Key是否已经发布到服务器上。
KeyID可以通过 gpg —list-keys来获得。以下是一个输出结果:
pub 1024D/C5852939 2005-02-28 uid Wing sun <chunyang.sun@sw-linux.com> sub 2048g/4782DB2D 2005-02-28 其中C5852939就是Key ID。
这样你就好了一个Key,接下来你就可以和别人进行Key sign了。
key sign是一个其他人确认且认可你的Key是一个可信任的安全Key的过程。一般而言在国际上进行Key sign的过程是这样的:
1、你需要向他人提供你的Key ID、Full Name、Comment、Email等信息。
2、提供能证明你的身份的证件,一般而言是身份证、护照等有效证件。
3、双方交换这些相关的信息,别且详细检查对方的身份证件,并确认该身份证件就是属于对方的,且确认对方提供的信息是正确的,且属于他自己的。
4、通过PGP的软件完成sign的过程。
在Debian中通过gnupg进行操作的过程如下:
首先,在你确认了该key的主人身份后,你必须先从互联网上获得该用户的公钥。运行
gpg —recv-keys KeyID
可以获得相应的用公钥信息到本地,当然你也可以通过gpg —search-keys来找寻并获取用户的公钥。
接下来我们就需要对该用户的公钥进行签名,执行
gpg —sign-key KeyID
gnupg将会提示你进行用户公钥的签名验证过程,根据提示进行操作即可。
签名完成后,你需要将你签名后的结果重新发送到互联网上,再一次执行:
gpg —send-keys
将所有的公钥发送到互联网上。
这样你就完成了一个gpg签名的过程。
怎样修改一个错误gpg 密钥?
可能你在创建gpg密钥的时候由于不小心输入错误了,而当你发现输入错误的时候,你却已经将该密钥发送出去了。这时候你可以通过
gpg —edit-key KeyID
来编辑这个密钥,在这个密钥中创建一个新的User ID(通过edit-key的子命令adduid来完成),然后将原有的User ID作废掉(先通过uid命令选中原有的User ID,然后通过revuid来作废该User ID),最后将你的修改发送到互联网上的Key Server即可。
这儿要注意的是,你做过的任何关于密钥的变更(包括修改、签名、作废等)都需要在最后发送到互联网的Key Server才可以确保它完全的生效。
备份你的密钥或者将密钥从一台计算机转移到另外一台
备份密钥分为备份公钥和私钥两个部分,备份公钥:
gpg -o keyfilename —export KeyID
如果没有KeyID则是备份所有的公钥,-o表示输出到文件keyfilename中,如果加上-a的参数则输出文本格式的信息,否则输出的是二进制格式信息。
备份私钥:
gpg -o keyfilename —export-secret-keys KeyID
如果没有KeyID则是备份所有的私钥,-o表示输出到文件keyfilename中,如果加上-a的参数则输出文本格式的信息,否则输出的是二进制格式信息。
然后在别的机器上可以通过
gpg —import filename
导入这些信息。
如果你使用的是相同的系统,则你可以通过最简单的方法将gpg的所有信息拷贝到另外一台计算机上。也就是说你只需要把.gnupg目录完全拷贝到你要拷贝的机器上即可 。
如果你丢失了你的私钥,那么你就失去了对该密钥的控制权,因此请保护好你的私钥,将其存储于一个安全的场所。?
暂时到此,中午写了一半,要开会只好中断了。