目录

前言

由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

Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议的更多相关文章

  1. Openstack贡献者须知 2 — 社区工作运作 & 代码贡献流程

    目录 目录 前文列表 订阅邮件列表 Mailing Lists 社区工作运作流程 Openstack 代码贡献流程 PEP8 Python编程风格 查阅相关资源 前文列表 Openstack贡献者须知 ...

  2. FTPS (FTP over SSL) vs. SFTP (SSH 文件传输协议): 我们如何做出选择

    第一个RFC的FTP协议发布通过网络使用FTP协议(由RFC 959或更高版本)的文件传输始于1980年,FTP提供上传,下载和删除文件,创建和删除目录,读取目录内容的功能.虽然FTP是非常受欢迎的, ...

  3. 使用 SSH 和 SFTP 协议

    通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等. 几年前,我决定配置另外一台电脑,以便我能在工作时访问它来传输我所需要的文件.要做到这一点,最基本的一步是要求你的网 ...

  4. ssh(安全外壳协议)

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专 ...

  5. SSH(安全协议外壳)介绍及Linux SSH免密登录

    SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,是一种网络安全协议,专为远程登录会话和其他网络服务提供安全性的协议.通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过 ...

  6. ssh(安全协议外壳)

    以下来源于百度百科 https://baike.baidu.com/item/ssh/10407?fr=aladdin SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Netw ...

  7. openstack虚拟机,采用ssh密钥登录

    在openstack中,制作出的镜像有两种登录方式 1:直接密码登录 2:秘钥登录 在openstack中加入了公钥对应自己会有一份秘钥,该怎样用秘钥进行登录, 可以直接如图在控制节点中,输入ssh ...

  8. OpenStack官方镜像无法ssh登陆

    0x00 序 当前主流的Linux系统都有提供可以在OpenStack中直接使用cloud镜像,但当使用从官方网站下载的镜像创建云主机时,你会发现Linux下经常使用的ssh竟然无法登陆新创建好的云主 ...

  9. openstack 主机无法ping通instance,无法ssh到instance

    https://docs.openstack.org/zh_CN/user-guide/cli-nova-configure-access-security-for-instances.html 好不 ...

随机推荐

  1. 项目集成swagger,并暴露指定端点给swagger

    项目集成swagger 一:思考: 1.swagger解决了我们什么问题? 传统开发中,我们在开发完成一个接口后,为了测试我们的接口,我们通常会编写单元测试,以测试我们的接口的可用性,或者用postm ...

  2. 用 Flask 来写个轻博客 (10) — M(V)C_Jinja 常用过滤器与 Flask 特殊变量及方法

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 Jinja 中常用的过滤器 default float int len ...

  3. 深入解读 Redis 的持久化

    Redis持久化 Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱 Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Red ...

  4. (转)Jupyter默认目录和默认浏览器修改

    目录 1.总结:修改Anaconda中的Jupyter Notebook默认工作路径的三种方式 # 2.Jupyter默认目录和默认浏览器修改 1.总结:修改Anaconda中的Jupyter Not ...

  5. 力扣算法——136SingleNumber【E】

    Given a non-empty array of integers, every element appears twice except for one. Find that single on ...

  6. EF复合主键

    [Key,Column(Order = )] [Key,Column(Order = )]

  7. kafka的简介

    1. kafka是一个分布式消息队列.具有高性能.持久化.多副本备份.横向扩展能力.生产者往队列里写消息,消费者从队列里取消息进行业务逻辑.一般在架构设计中起到解耦.削峰.异步处理的作用. 1.1 b ...

  8. 学习Spring时用Idea中Maven Project创建一个子module出现了子pom.xml没有继承父pom.xml

    正常情况: 解决方法: 1.首先点击父项目右键 -->new-->Module 2.不用点击create from achetype直接点击next 3.在ArtifactId输入你要mo ...

  9. python基础【第五篇】

    python第三节 1.整型及布尔值 1.1 进制转换 十进制 ----二进制 二进制 ----十进制 8421方法与普通计算 python中十进制转二进制示例:bin(51)>>> ...

  10. Oracle多种表连接方式

    1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语 ...