这个文档主要介绍如何给别人的key做证明担保。

注意,Apache要求必须面对面签名。流程是,先检查对方的ID(国内就是身份证),然后给他进行认证。

本文参考自:https://gist.github.com/F21/b0e8c62c49dfab267ff1d0c6af39ab84

本文中的命令,有些电脑上是gpg,有些是gpg2。

步骤1 下载对方的key

你需要知道对方的key的ID,比如对方可以在自己电脑上运行:

gpg2 --list-keys 

看到的结果形如:

pub rsa4096 2019-09-25 [SC]
BA45CDBB87E8B146A81F5BBE2206EF8F64C35889
uid [ultimate] Xiangdong Huang (Apache IoTDB release signing key) <hxd@apache.org>
sub rsa4096 2019-09-25 [E]

其中的BA45.....889就是KEY。


然后将对方的key获取到自己电脑上:

gpg2 --recv-keys BA45CDBB87E8B146A81F5BBE2206EF8F64C35889

准备工作就绪。


注意!!! 在国内可能 --recv-keys始终下载不到key,这种情况下可以用下述方案:

1. 跟对方要他的PUBLICKEY 或者从网上搜索他的key(在key的服务器上用邮箱搜索)

2. 将这个publicKEY内容存储到本地的一个文件中

3. 导入key: gpg2 --import 文件

步骤2 签名

gpg2 --sign-key BA45CDBB87E8B146A81F5BBE2206EF8F64C35889

然后输入y即可。

但是注意,这里会显示出你用什么密钥签名,如果发现不是你的apache密钥(比如你有多个密钥),这就比较麻烦。

可能可以用gpg2 --edit-key BA45CDBB87E8B146A81F5BBE2206EF8F64C35889 具体处理。 我比较粗暴,直接把其他的密钥删除了,然后重新gpg2 --sign-key的。


步骤3 导出密钥

gpg2 -a --export BA45CDBB87E8B146A81F5BBE2206EF8F64C35889 | gpg2 -se -r BA45CDBB87E8B146A81F5BBE2206EF8F64C35889 > ~/tmp/BA45CDBB87E8B146A81F5BBE2206EF8F64C35889.asc.pgp

步骤4 发送给对方

发送邮件即可。

步骤5 (对方)解压缩、导入、再上传

gpg2 --decrypt BA45CDBB87E8B146A81F5BBE2206EF8F64C35889.asc.pgp
gpg2 --import BA45CDBB87E8B146A81F5BBE2206EF8F64C35889.asc
gpg2 --send-keys BA45CDBB87E8B146A81F5BBE2206EF8F64C35889 (这步在国内不可行,请参考如何发布的帖子中的上传方法)。

步骤6(对方)解压缩、导入、再上传

如果你是Apache IoTDB的 release manager,需要把你的key上传到keys文件 (https://www.apache.org/dist/iotdb/KEYS)中:

执行:

gpg2 --list-sigs BA45CDBB87E8B146A81F5BBE2206EF8F64C35889 && gpg2 --armor --export BA45CDBB87E8B146A81F5BBE2206EF8F64C35889

把输出结果贴到KEYS末尾。然后上传新版本文件到SVN即可(参见如何发布的文档)。












  • No labels