xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

GPG key


各种折腾·gpg

本文发表于超过180天以前,部分内容可能已经失效

Big brother is watching you.

所以还是决定弄个GPG key。

先生成钥匙串,也就是一对公钥私钥

gpg --gen-key

都默认选项。要输入密码的,密码需要记好。然后程序要使用随机生成的字符串来创建独一无二的钥匙串,这个过程真的很久,而且要靠敲键盘动鼠标来生成足够随机的随机字符串,看着像是程序死掉了,但其实它还在默默的等你进行足够多的动作,所以就别理了,上上网吧,鼠标一直晃着就是了,等完成了程序会自动退出的。然后就会在~/.gnupg/里看到.gpg文件了。查看钥匙串

gpg -k
gpg -K

这两个分别是查看公钥和私钥的。把公钥导出来,因为这个是要公开到处散发的。

gpg -o ./xjpvictorpubkey.gpg -a --export xjpvictor

这个.gpg是个文本文件,里面的内容可以直接复制粘贴公开发布的。然后当别人拿到我的公钥,同样存成一个文本文件,然后导入

gpg --import ./xjpvictorpubkey.gpg

这样他就能使用我的公钥了。如果他认识我,能够确定一定以及肯定这个公钥是我本人的,那么他就能用

gpg --edit-key xjpvictor

来修改这个公钥的信任度。输入trust,然后根据提示来选择。完了再用quit退出。

当他想给我发加密的文件时,就用我的公钥生成加密文件

gpg -o ./x.gpg -er xjpvictor ./x

然后他把x.gpg传给我,我再用私钥解密

gpg -o ./x -d ./x.gpg

解密时候需要输入密码,就是最先生成钥匙串时候输入的密码。

同样的,我如果要给别人发加密文件,就先导入他的公钥,用这个公钥加密,他收到了加密后的文件就能用他的私钥解密了。

而如果我用自己的公钥加密,那么自然就只有我自己能解密这个文件了。这样可以用于加密一些需要保密或者要上传到云里保存的私人文件,比如说xx照什么的。这可是很重要的,如果陈老师知道这么做,不就没当年那档子事儿了么,唉,没文化真可怕。

但是加密只能保证看到文件的人不是第三方,并不能保证发出文件的人不是第三方。所以需要告诉对方这确实是我发的文件,而且未经他人篡改。这时候就需要对这个文件签名。然后发送签名后的文件。

gpg -o ./x.sig --clearsign ./x

当对方收到我的文件后

gpg --verify ./x.sig

就能验证是否真的是我发送的而且是否被篡改过。

所以,我先用自己的私钥签名,然后用对方的公钥加密,那么当对方拿到文件以后就能确定这个文件是我发送的,而且只有他才能解密。那么文件的传送就是可靠的。

私钥一定要保存好,丢失或者泄漏的话就废了,重新生成一个吧。公钥可以上传到一些公开的服务器上,这样别人就能直接从公钥服务器上根据我的id下载我的公钥,很方便。但是如果公钥设置为永远不过期就最好不要上传了,因为只要没过期,这些服务器就会一直保存着这些公钥,即使私钥丢失导致公钥作废了,所以,不要做这种不负责任的事。

公开我的公钥
PGP key: 0x68b6e3d8 http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6D30F13E68B6E3D8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8

本文 "GPG key" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2012
转载注明引用来源 https://blog.xjpvictor.info/2012/04/gpg-key/

赞助我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

取消 上传图片 或拖拽上传

* Some files will not be uploaded. Only png, gif, jpg are allowed and maximum 10 images, each file less than 10M.

你可以添加 10 个 png/gif/jpg 图片 (每个文件小于 10M)

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r