热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

目录目录前言Openstack基金委员会Openstack贡献者须知注册OpenstackInLaunchpad生成并上传OpenPGP密钥生成并上传SSH公钥JoinTheO

目录

  • 目录
  • 前言
  • Openstack基金委员会
  • Openstack贡献者须知
    • 注册Openstack In Launchpad
    • 生成并上传OpenPGP密钥
    • 生成并上传SSH公钥
    • Join The OpenStack Foundation
    • 签署CLA贡献者协议
  • 参考资料

前言

由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 天后过期
w = 密钥在 n 周后过期
m = 密钥在 n 月后过期
y = 密钥在 n 年后过期
密钥的有效期限是?(0) 0 #0 = 密钥永不过期
密钥永远不会过期
以上正确吗?(y/n) y

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

真实姓名: fanguiju
电子邮件地址: fan_guiju@163.com
注释: This is LaunchPad OpenPGP key
您选定了这个用户标识:
“fanguiju (This is LaunchPad OpenPGP key) 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) 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) @163.com>”
2048 位的 RSA 密钥,钥匙号 DD3FF8DC,建立于 2016-07-15 (主钥匙号 06E66903)

gpg:2048 位的 RSA 密钥加密,钥匙号为 DD3FF8DC、生成于 2016-07-15
“fanguiju (This is Launchpad openpgp keys) @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


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
author-avatar
Devil灬旋律
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有