代码改变世界

Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议

2016-07-15 19:40  云物互联  阅读(581)  评论(0编辑  收藏  举报

目录

前言

由Openstack基金委员会管理的Openstack社区,现在已经成为了全球第二大开源社区仅次于Linux社区,所以也有人将Openstack定义为下一个Linux。就从我个人角度出发,我认为Openstack和Linux不属于同一类事物,所以不具有继承性和可比性。但无论怎样都好,如果想成为Openstack这一个方向的专家的话,加入Openstack社区是必不可少的一步。

Openstack基金委员会

Openstack基金委员会的主要工作:

  • 管理Openstack的开发流程、版本发布
  • 管理Openstack开发者、用户、社区生态体系
  • 收集用户需求
  • 商标管理
  • 社区事务管理(summit meetup)
  • 法律问题

Openstack基金会成员类型:

  • 技术委员会:负责Openstack代码管理、项目质量把握
  • 董事委员会:决定了Openstack未来发展的方向,有铂金会员、黄金会员、个人会员等几个级别
  • 用户委员会:收集不同的用户对Openstack的需求

Openstack贡献者须知

注册Openstack In Launchpad

Launchpad是Ubuntu的亲妈Canonical所资助的网站,是一个提供维护、支持或连络Ubuntu或相关开发者的Web平台,在这个平台上还可以使用汇报机制来报告相关软件的Bug,或进一步提供建议。

Launchpad中包含了Openstack Project Group托管了Openstack的所有项目 —— Openstack In Launchpad
注意:我们可以通过电子邮箱来注册Launchpad的账号,注意在选择LaunchpadID时要慎重,这是不可修改的。点这里 进入Launchpad。

在Openstack in Launchpad中你能得到什么帮助?

  • 很方便跳转到Openstack相关的网站
    这里写图片描述

  • 常见问题的答案
    这里写图片描述

  • 了解最新的Bugs reported
    这里写图片描述

  • 最新的Openstack blueprints
    这里写图片描述

  • 上传一个自己遇见的BUG,提出自己的问题
    这里写图片描述

生成并上传OpenPGP密钥

在注册Launchpad完成之后,需要设置OpenPGP密钥,并上传SSH公钥,来保证往后在Launchpad上进行操作的安全性。
注意:一下的步骤必须使用Ubuntu才能完成。

OpenPGP:Pretty Good Privacy(PGP)是一个提供加密和认证的计算机程序。PGP经常被用于签名、加密和解密电子邮件,以增加电子邮件通信的安全性。

Introducing OpenPGP keys:
An OpenPGP (also called GnuPrivacyGuard) key allows you to sign documents, such as emails or text files, using a digital key.

There are two parts to an OpenPGP key:
one public that you share with the world and the other private, which you should guard closely. Both are standard text files that make up a digital signature.

为什么要在Launchpad中使用OpenPGP
In Launchpad, you can use your OpenPGP key to identify yourself when using the bug tracker’s email interface, when uploading distribution packages and when signing a code of conduct.
简单来说, 就是Launchpad需要使用数字签名来确认我们所作的工作是否为自己的操作。 如果上传了一个源码包到Launchpad, 系统必须在接受这个源码包之前确认你的身份。

在Ubuntu中创建一个OpenPGP Key

  • 方式一:使用Passwords and Encryption Keys tool来创建OpenPGP Key。
    可以直接通过GUI打开 ==> 安装sudo apt-get install seahorse ==> seahorse启动Passwords and Encryption Keys
    这里写图片描述

    • Create the OpenPGP Keys
      这里写图片描述
    • 等上一段时间,在PGP密钥选项卡能找到新建的OpenPGP Key
      这里写图片描述
  • 方式二:也可以直接通过指令行来完成创建和上传OpenPGP key

    • 创建:gpg --gen-key
jmilkfan@jmilkfan-guestos:~/桌面$ gpg --gen-key 
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 1                              #选择默认的(RSA and DSA)Key type 就可以
RSA 密钥长度应在 1024 位与 4096 位之间。    
您想要用多大的密钥尺寸?(2048)              #Key size,默认为(currently 2048),4096会更安全
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0                    #0 = 密钥永不过期
密钥永远不会过期
以上正确吗?(y/n) y

您需要一个用户标识来辨识您的密钥;本软件会用真实姓名、注释和电子邮件地址组合
成用户标识,如下所示:
    “Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>”

真实姓名: fanguiju
电子邮件地址: fan_guiju@163.com
注释: This is LaunchPad OpenPGP key
您选定了这个用户标识:
    “fanguiju (This is LaunchPad OpenPGP key) <fan_guiju@163.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? o
您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。               #需要一些时间来创建Key,期间由于程序需要一些随机数, 你需要尽量的进行一些操作,比如移动鼠标或者点击键盘

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要201字节)
..+++++
.........+++++
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要92字节)
..+++++

随机字节不够多。请再做一些其他的琐事,以使操作系统能搜集到更多的熵!
(还需要128字节)
..............+++++
gpg: 密钥 B88FA626 被标记为绝对信任
公钥和私钥已经生成并经签名。

gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  3 已签名:  0 信任度:0-,0q,0n,0m,0f,3u
pub   2048R/B88FA672 2016-07-15
      密钥指纹 = AA32 3EBD 1FBF 11F6 9B3C  9F44 3F53 EDE7 B88F XXXX
uid                  fanguiju (This is LaunchPad OpenPGP key) <fan_guiju@163.com>
sub   2048R/05B876C1 2016-07-15


#到处Key创建成功B88FA672为KeyID。 指纹为AA32 3EBD 1FBF 11F6 9B3C  9F44 3F53 EDE7 B88F XXXX
  • 上传你的OpenPGP key到Ubuntu keyserver
gpg --keyserver keyserver.ubuntu.com --sendkeys <KeyID>
  • 在Launchpad上填写密钥指纹来匹配Key
    这里写图片描述
    在匹配成功后Launchpad会发送一封邮件给你,邮件包含了你的密钥和接触密钥的方法。

  • 在本地验证OpenPGP key
    首先需要将邮件中给出的key的内容存放到一个文件中,EG. gpgkey
    注意:需要存放-----BEGIN PGP MESSAGE-----开始,到-----BEGIN PGP MESSAGE-----结尾的全部内容。

jmilkfan@JmilkFan-Openstack:~$ gpg -t 桌面/gpgkey 

您需要输入密码,才能解开这个用户的私钥:“fanguiju (This is Launchpad openpgp keys) <fan_guiju@163.com>”
2048 位的 RSA 密钥,钥匙号 DD3FF8DC,建立于 2016-07-15 (主钥匙号 06E66903)

gpg:2048 位的 RSA 密钥加密,钥匙号为 DD3FF8DC、生成于 2016-07-15
      “fanguiju (This is Launchpad openpgp keys) <fan_guiju@163.com>”
gpg: 桌面/gpgkey:未知的后缀名
请输入新的文件名 [-&38]: gpgkeyDecryption       #给出一个新文件名用于放解密的结果


1. OpenPGP操作手册
2. PGP Howto使用手册

生成并上传SSH公钥

为Gerrit设置SSH帐户。Gerrit是OpenStack的代码评审工具,用于保证贡献者贡献代码的质量。登陆OpenStack代码审查页面(使用Launchpad帐户登录),并上传SSH公钥。

SSH(Secure Shell),是一个允许你在网络上安全传输数据的协议。推荐使用SSH来进入另外一台服务器,以及传输文件。例如:我们会使用SSH来上传源码包到Launchpad。

  • 生成SSH Keygen
jmilkfan@JmilkFan-Openstack:~/桌面$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jmilkfan/.ssh/id_rsa):        
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/jmilkfan/.ssh/id_rsa.
Your public key has been saved in /home/jmilkfan/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:LjOkO8dlz5Vs42d3ZMXIr/Ur+uUdVRkJKzA6SzUqPAM jmilkfan@JmilkFan-Openstack
The key's randomart image is:
+---[RSA 2048]----+
|   E     =   ....|
|    o   + +   ..o|
|     = =   . o +.|
|      = o   . o +|
|      ..S  . . .o|
|     o .o   *   *|
|    ..+o.o + . B.|
|    ..o+  o ..* *|
|    .o     .o+.++|
+----[SHA256]-----+
jmilkfan@JmilkFan-Openstack:~/桌面$ cat /home/jmilkfan/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EBBBBDAQABAAABAQDKfshB2KlZn54XWtqXThJohsT1F5MNR9IPDzDfIRUIeLxhyW+sSzXQniQPJBO2QOFktIAPyNvK+hIPxE6BWwCKvNYWFVnQLZ9N9S9+EuCpDONFUJY5N+I8wxNXMRMwo0Rs5HEj8wEvV1C7c6TcxoZXbt1pc6n37dwiEFd9b4vs55aVHljFBxrjLnLa7nIyMlGHo444qAPR9962Y/iqPFqscbu/QsOFuXv2PrIsCPOaIqYfQQXOwHMKcU12jLAL4Zw6aFeW34SSReA3UJYjw0wvowSfBB8m1BXdo6fpzCuumcEdjPMKEPCkL8/vB46kBLWJg9gxmDn3h9BnwuiTUM+x jmilkfan@JmilkFan-Openstack
  • 点击右上角的UserName ==> Setting ==> SSH Public Keys选项卡,再根据提示将上述操作获取的SSH公钥Upload。
    这里写图片描述

这里写图片描述

Join The OpenStack Foundation

The Mission
The OpenStack Foundation is an independent body providing shared resources to help achieve the OpenStack Mission by Protecting, Empowering, and Promoting OpenStack software and the community around it, including users, developers and the entire ecosystem.

Openstack Foundation有几种不同级别的账号,其中个人账号(Individual Member)是可以免费加入的。个人账号又分为社区成员基金会成员两种,对应拥有不同的权限。
这里写图片描述

一般而言,我们个人开发者更多的会申请基金会成员,因为需要签署CLA贡献者协议。

签署CLA贡献者协议

签署CLA贡献者协议的前提是你已经加入了Openstack Foundation。

Step1. Sign In Code Review(使用Launchpad Account to Sign In)

Step2. 签署贡献者协议。除非您是美国政府雇员,否则请同意ICLA(Individual Contributor License Agreement)并提供联系信息。你的所有姓名和电子邮件地址都是公开的。https://review.openstack.org/#/settings/agreements
这里写图片描述

填充信息并完成协议签署
注意:Launchpad的主要电子邮件地址需要与你的OpenStack Foundation Member身份设置的电子邮件地址相匹配。
这里写图片描述

这里写图片描述

Step3. 加入OpenStack Contributors Group。需要以会员身份提交代码更改。但这需要Team Administrator的确认才能够加入。如果你是以个人贡献者的身份工作的话,那么执行Step2就足够了。

参考资料

How do I make a PGP key?
向 OpenStack 贡献您的代码
如何使用Launchpad平台参与社区开发
加入ubuntu开源社区开发工作1-准备工作
“Cannot store contact Information” when updating info in OpenStack gerrit