前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 GPG 对 git commit 签名

使用 GPG 对 git commit 签名

作者头像
yiyun
发布2022-04-01 15:42:32
1.2K0
发布2022-04-01 15:42:32
举报
文章被收录于专栏:yiyun 的专栏

引言

​ 由于Git仅靠邮箱地址判断提交者,而邮箱又可以在本地随便设置,于是这使得你可以轻易冒充其他人的提交,而使用GPG对每一个Git Commit进行签名就可以解决这一问题,通过签名,会在commit记录上标识 Verified ,它用来标记此提交确实来自你自己,而不是冒用,目前GitHub、GitLab,Gitee等都支持GPG,GPG签名使得commit更加可信,就算SSH Private Key泄露,别人也无法冒充你的身份。

准备

打开 Git Bash

注意:在Windows版本的Git发行包中,已包含了可用的GPG命令行, 无需再下载安装额外的GPG软件,但只能在 Git Bash 下才能使用,可在 Git Bash 中执行 gpg --version 验证GPG是否已安装

生成GPG密钥之前,可以先检查当前电脑是否存在有 GPG 密钥

代码语言:javascript
复制
gpg --list-secret-keys --keyid-format LONG

由上图,可知,没有GPG秘钥,由于是首次运行此命令,所以会创建一些相关配置文件

生成一个新的GPG密钥

代码语言:javascript
复制
gpg --full-generate-key
  1. 加密算法,直接回车,默认使用 RSA and RSA
  2. 密钥长度,我选择 4096
  3. 密钥有效的时间长度,直接回车,默认0,即永不过期
  4. Is this correct? (y/N) y,输入y,确认一下
  5. 输入用户ID,电子邮箱地址,注释(comment可不填),用户ID建议填GitHub用户名,电子邮箱填GitHub验证的绑定邮箱
  6. 输入 O 确认
  7. 自己设置一个GPG密码来保护GPG秘钥,然后再次输入密码确认,此时一个GPG秘钥创建完成
  1. 查看秘钥
代码语言:javascript
复制
gpg --list-secret-keys --keyid-format LONG

注意:其中红框部分即为 GPG秘钥ID,接下来将用到GPG秘钥ID

  1. 导出GPG秘钥
代码语言:javascript
复制
gpg --armor --export <Key ID>

<Key ID> 替换为你的 GPG秘钥ID

  1. 复制你的GPG秘钥

以-----BEGIN PGP PUBLIC KEY BLOCK-----开头和-----END PGP PUBLIC KEY BLOCK-----结尾

添加GPG秘钥到GitHub

粘贴刚才复制的GPG秘钥,点击 Add GPG key即可

开启全局GPG签名

代码语言:javascript
复制
git config --global user.signingkey <Key ID>

<Key ID> 为GPG秘钥ID

测试

代码语言:javascript
复制
git commit -a -S -m "update: test GPG"

命令中的 -S 即是开启GPG签名,这样每次提交的时候都要加上 -S,输入GPG的密码即可提交成功

每次都要 -S 比较麻烦,下面设置提交时默认使用GPG签名

代码语言:javascript
复制
git config --global commit.gpgsign true

补充

Git 查看/修改 全局 用户名/邮箱

查看全局 用户名和邮箱

代码语言:javascript
复制
git config --global user.name
git config --global user.email

修改全局 用户名和邮箱

代码语言:javascript
复制
git config --global user.name "用户名"
git config --global user.email "邮箱"

查看带签名log

代码语言:javascript
复制
git log --show-signature

参考

感谢帮助!

本文作者: yiyun

本文链接: https://moeci.com/posts/分类-github/git-gpg/

版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 准备
  • 生成一个新的GPG密钥
  • 添加GPG秘钥到GitHub
  • 开启全局GPG签名
    • 测试
    • 补充
      • Git 查看/修改 全局 用户名/邮箱
        • 查看带签名log
        • 参考
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档