使用 GPG 签名 Git 提交,让它安全可信
Gitee(码云)也支持使用 GPG 签名提交。
GitLab 是如何处理 GPG 呢?
GitLab使用自己的密钥环来验证 GPG 签名。它不访问任何公钥服务器。
对于要由 GitLab 验证的提交:
- 提交者必须具有 GPG 公钥/私钥对。
- 提交者的公钥必须已上传到其 GitLab 帐户。
- GPG 密钥中的一封电子邮件必须与提交者在 GitLab 中使用的经过验证的电子邮件地址匹配。
- 提交者的电子邮件地址必须与 GPG 密钥中验证的电子邮件地址匹配。
生成 GPG 密钥并上传 GPG key 到 GitLab
1、安装 GPG,MacOS 环境下可以使用 brew 安装 gpg:
brew install gpg
2、用以下命令生成 GPG key。
gpg --gem-key
3、使用以下命令列出您刚刚创建的私密 GPG 密钥:
gpg --list-secret-keys --keyid-format LONG <your_email> # 这里是 admin@example.com
4、复制以 sec 开头的 GPG 密钥 ID。以下示例中,它是 66DD4800155F7A2B
sec rsa2048/66DD4800155F7A2B 2019-10-31 [SC] [有效至:2021-10-30] 39033F321A83635ECD7FC8DA66DD4800155F7A2B uid [ 绝对 ] admin <admin@example.com> ssb rsa2048/53DD9CB77C862573 2019-10-31 [E] [有效至:2021-10-30]
5、导出该 ID 的公钥:
gpg --armor --export pub 66DD4800155F7A2B
6、复制公钥并将其添加到 GitLab 个人资料的设置中。
将 GPG 密钥与 Git 关联
git config --global user.signingkey 66DD4800155F7A2B # 或者 git config user.signingkey 66DD4800155F7A2B
签名提交
1、Git 提交时,使用 -S 标记进行 GPG 签名:
git commit -S -m “commit message"
2、此外,Git 可以设置默认使用 GPG 签名提交:
git config --global commit.gpgsign true # 或者 git config commit.gpgsign true
在 GitLab 验证提交
1、在 GitLab 提交选项卡,签名的提交将显示包含“ Verified”或“ Unverified”的徽章,具体取决于 GPG 签名的验证状态。
撤销(revoke)或删除 GPG key
此外,还可以撤销(revoke)或删除 GPG key。
它们不同之处在于:
在 Git 中通过命令行验证相关提交的签名
$ git log --show-signature -1 commit 374010d1af1de40fdf8f1f6f5cca0c0c60e4fe9d (HEAD -> master, origin/master, origin/HEAD) gpg: 签名建立于 四 10/31 11:24:16 2019 CST gpg: 使用 RSA 密钥 39033F321A83635ECD7FC8DA66DD4800155F7A2B gpg: 完好的签名,来自于 “admin <admin@example.com>” [绝对] Author: admin <admin@example.com> Date: Thu Oct 31 11:24:16 2019 +0800 update README.md

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开普勒云平台:9个示例解析如何安装依赖
本文介绍开普勒云平台如何安装依赖。 Kplcloud是什么? kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。 Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。 一、Namespace 建议将与开普勒相关的服务独立到一个专有的 Namespace下,在Kubernetes创建新的空间。您可以执行以下命令创建该空间 $ kubectl create namespace kpaas 或执行以下命令 : $ kubectl apply -f install/kubernetes/namespace.yaml 二、配置持久化存储 2.1 持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/ku...
- 下一篇
NutzBoot v2.3.8.v201901031
NutzBoot,简称 NB,源于2k star 的nutz 项目, 是可靠的企业级微服务框架,提供自动配置,嵌入式 Web 服务,分布式会话,流控熔断,分布式事务等一篮子解决方案,只需简单几行代码,即可一个完善的微服务进程. 已经在几十家企业深度使用, 码云 GVP 加持, 代码稳健可控. 不止代码开源, 开发过程也公开. 完善的 git 提交日志,响应及时的 issue 系统,随时秒回的问答社区^_^ 本次更新带来: 新增了几个实用的demo, 更新了几个核心的组件, 特别是dubbo和seata 时间:2019-10-31 曲目:那年那兔那些事-第一季 兼容性:兼容2.0.x/2.1.x/2.2.x/2.3.x 主要变更: add:添加starter-thrift-server add:添加loveexception的项目链接 add:添加NutzBoot版的justauthdemo地址 add:添加物联网项目irtu-gps作为demo, PCB/固件/服务器端/小程序均开源. update:完善nacos-config-client update:jettydemo,确保w...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16