PGP/GPG public key (not an SSH key)
既然如此,那就做一个吧:
安装一个最新版本的 gnupg:
$ emerge =app-crypt/gnupg-2.0.9-r1
$ gpg --gen-key
此过程一系列问题,姓名、电邮、Comment,最后生成的ID的形式是:
"Name (Comment)"
做好了之后,就传到服务器上去吧,当然传送的是公钥了,私钥是不以任何方式泄漏的;
$ gpg --list-keys
$ gpg --export --armor
$ gpg --keyserver hkp://keys.gnupg.net --keyserver-options debug --send-keys f9b0925b
$ gpg --keyserver hkp://keys.gnupg.net --keyserver-options debug --send-keys f9b0925b
gpg: sending key F9B0925B to hkp server keys.gnupg.net
gpgkeys: curl version = libcurl/7.18.2 OpenSSL/0.9.8j zlib/1.2.3
* About to connect() to keys.gnupg.net port 11371 (#0)
* Trying 86.59.21.34... * Timeout
* Trying 129.128.98.22... * connected
* Connected to keys.gnupg.net (129.128.98.22) port 11371 (#0)
> POST /pks/add HTTP/1.1
Host: keys.gnupg.net:11371
Accept: */*
Content-Length: 1956
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: sks_www/1.0.10
< Content-type: text/html; charset=UTF-8
<
* Closing connection #0
http://www.kernel.org/faq/#account
缺省传送的是 hkp://keys.gnupg.net 服务器,在 ~/.gnupg/gpg.conf 文件中,也提示了其它传送方式,包括发送邮件的形式;因为上面这样的传送有时会失败,如 "86.59.21.34... * Timeout" 。
这个 hkp 访问协议从上面的传送过程也可以看出来,实际上就是一个在非标准端口运行的 http 服务器,提交的过程实际就是 http 表单的提交,既然知道了它在使用 11371 端口号,当然也可以使用浏览器来访问了,如:
http://keys.gnupg.net:11371/pks/lookup?search=0xf9b0925b
1 comment:
So good !
顶一下好文!
Post a Comment