文档章节

使用gpg密钥验证github提交

你们都是技术宅
 你们都是技术宅
发布于 2018/11/10 23:14
字数 853
阅读 15
收藏 0

git是现在最流行的版本控制工具,而且它确实功能很强大。在使用git之前,首先要设置用户名和电子邮箱两个参数。可能有人会有疑问,假如两个不同的人使用相同的用户名和电子邮箱进行提交,会怎么样呢?答案是可以的,git本身无法判断,所以会把这两个人识别为同一个人。为了可靠的验证每一次提交,git提供了gpg密钥的验证功能。

首先我们需要安装gpg工具,可以用Linux系统、Windows 10的Linux子系统、Git Bash工具等等,它们基本上都包含gpg工具。

创建gpg密钥

首先验证一下gpg版本。 验证gpg版本

如果gpg版本在2.1.17以上,就用下面的命令:

gpg --full-generate-key

如果gpg版本在2.1.17以下,用下面的命令:

gpg --default-new-key-algo rsa4096 --gen-key

然后按照提示输入密钥类型、密钥长度、过期时间、用户名、密码等信息,其中密钥长度推荐4096,其他按需输入即可。

输入信息

密钥创建完毕之后,用下面的命令来列出已经创建好的密钥ID:

gpg --list-secret-keys --keyid-format LONG

列出密钥

然后就可以查看密钥内容了,你需要将ID替换为自己的:

gpg --armor --export 831CF40177EA9999

密钥内容以-----BEGIN PGP PUBLIC KEY BLOCK-----开始,以-----END PGP PUBLIC KEY BLOCK-----结束。 密钥内容

向github添加gpg密钥

首先打开github用户设置,然后在SSH and GPG keys中添加GPG密钥,然后将上面得到的包括BEGINEND在内的东西复制进去并选择添加,这样就完成了GPG密钥的添加工作。 添加gpg密钥

当然,细心的同学会发现这里截图的密钥ID和上面生成的好像不一样,因为一开始我是在Git Bash中设置生成的gpg密钥,最后添加到github中。但是为了截图,所以我又在WSL中重新运行了一下命令,所以生成的密钥不一样。由于它们都是非对称加密,所以公钥和密钥ID可以公开展示。

在git中设置gpg密钥

最后一步就是在本地git中设置gpg密钥了。首先用下面的命令列出所有gpg密钥ID:

gpg --list-secret-keys --keyid-format LONG

密钥ID

然后将密钥ID添加到git设置中:

git config --global user.signingkey 831CF40177EA9999

如果要让当前git项目启用签名验证,使用下面的命令:

git config commit.gpgsign true

如果要让所有项目都启用签名验证:

git config --global commit.gpgsign true

这样一来,在使用git commit命令提交的时候,就会用gpg来签名提交,当然也可以在提交的时候使用git commit -S参数来显式启用验证。

最后,当项目提交到Github之后,点击进入提交详情查看的时候,就可以看到一个绿色的Verified标志,表示这次提交已经经过验证,确认是作者本人的提交了。

提交确认

© 著作权归作者所有

共有 人打赏支持
你们都是技术宅
粉丝 0
博文 4
码字总数 3286
作品 0
呼和浩特
程序员
私信 提问
Fedora 中用 yum 安装软件出现 gpg keys 相关问题

软件开发商在释出 RPM 文件时,会在其中添加数字签名,并释出用于验证数字签名的公钥。使用 rpm 安装软件时,rpm 会首先根据系统中已有的公钥去验证 RPM 文件的数字签名。gpg keys 就是公钥。...

philosopher
2014/09/17
0
0
保护代码完整性(六):在 Git 上使用 PGP

我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改。 在本系列教程中,我们提供了一个使用 PGP 的实用指南,包括基本概念和工具、生成和保护你的...

作者: Konstantin Ryabitsev
01/07
0
0
Git的.ssh文件夹内容介绍

文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. rsa与rsa.pub 首先是rsa与rsa.pub是如何产生的,产生的命令如下: 解释:是产生密钥,密钥有两种类型rsa和dsa两种,用来指定密钥类型,...

Quincuntial
2016/10/23
0
0
GNU隐私权保护加密系统 GPG 快速入门

起初这篇文章只是简单地包含了我的公钥,但随着时间的增长,它已经演变成一篇介绍如何使用以及为何使用GnuPG加密软件来保护隐私的文章,并且本文还在继续完善中。如果您有任何的问题,意见或...

laozhang
2013/07/08
5.5K
0
OpenSSH dropbear

SSL/TLS: SSL:安全的套接字层;1.0 2.0 3.0 TLS:传输层安全;1.0 1.1 1.2 1.3 SSL会话过程四个阶段: SSL Handshake Protocol: 第一阶段:ClientHello 1.协商所支持的协议的版本,如tls...

杨铄
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zeppelin源码分析(6)——note的执行过程

上图是zeppelin的前后台交互模型,zeppelin采用单独的jvm来启动interpreter进程,该Interpreter进程与zeppelinServer进程之间采用Thrift协议通信,其中RemoteInterpreterProcess是Thrift-Cl...

群星纪元
18分钟前
0
0
promise

Promise是异步里面的一种解决方案,解决了回调嵌套的问题。 语法: new Promise( function(resolve, reject) {...} /* executor */ ); executor是带有 resolve 和 reject 两个参数的函数 。...

东东笔记
19分钟前
0
0
精华集锦 | 阿里如何提升团队的研发效能?

项目管理、交付、托管、测试、运维帮您告别996,追赶“211”,海量资源0元起,尽在开发者分会场, 云效鼓励师:以下是我们整理的云效公众号上【研发效能】相关的爆款文章,这些内容中有许多都...

zhaowei121
24分钟前
0
0
收集一些有用的

1 服务器镜像下载站点: https://msdn.itellyou.cn/ 2 Windows2012 r2 产品id: NB4WH-BBBYV-3MPPC-9RCMV-46XCB 3 软件下载: https://www.filepuma.com/https://www.manageengine.cn/ 4 ......

拜了个拜
30分钟前
0
0
HIVE 常见的内置函数

文章目录 1 关系运算 1.1 1、等值比较: = 1.2 2、不等值比较: 1.3 3、小于比较: < 1.4 4、小于等于比较: <= 1.5 5、大于比较: > 1.6 6、大于等于比较: >= 1.7 7、空值判断: IS NULL 1.8 8、非...

瑞查德-Jack
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部