使用 GPG 签名你的 Commits

准备工作

首先要安装好 GPG 工具。

brew install gnupg gnupg2 pinentry-mac

配置使用环境。

test -r ~/.bash_profile && echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile
echo 'export GPG_TTY=$(tty)' >> ~/.profile

mkdir ~/.gnupg
echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf

killall gpg-agent

检查现有的 GPG 秘钥

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

如果没有返回值,则说明此电脑上没有配置 GPG 秘钥。
如果有,则可以跳过生成 GPG 秘钥的步骤。

生成一个新的 GPG 秘钥

gpg --full-generate-key

第一步,选择加密类型,可以直接回车选择默认的 RSA and RSA
第二步,输入秘钥的强度,推荐输入 4096
第三步,选择秘钥的过期时间,嫌麻烦的同学可以直接回车选择默认的永不过期。
第四步,确认一下以上信息有没有错。
第五步,输入你的名字。
第六步,输入你的邮箱,注意此邮箱需要是你的 Github 账号中添加过的邮箱。
第七步,可选输入注释,可以直接回车跳过。
第八步,按下 O 键确认信息正确,开始生成。
第九步,设置此秘钥的密码,使用此秘钥需要用这个密码来解密。
之后稍等片刻,GPG 秘钥即生成完毕。

使用 GPG 秘钥

在终端中使用 gpg --list-secret-keys --keyid-format LONG 命令查看当前秘钥的信息。

gpg --list-secret-keys --keyid-format LONG
/Users/hubot/.gnupg/secring.gpg
  ------------------------------------
sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot 
ssb   4096R/42B317FD4BA89E7A 2016-03-10

在这里 3AA5C34371567BD2 就是秘钥的 ID

使用以下命令来获得 GPG 秘钥的公钥,注意 <ID> 需要替换为自己秘钥的 ID。

gpg --armor --export <ID>

复制以上公钥,去往 Github 账户设置页面即可添加 GPG 秘钥。

接着使用以下命令配置 git 以使用 GPG 秘钥。

git config --global user.signingkey <ID>
git config --global commit.gpgsign true
git config --global gpg.program gpg

带有 GPG 验证的 commit 只是多了 -S 参数。

git commit -S -m "your commit message"

验证

在提交改动之后,可以使用以下命令来检验以下是否成功使用 GPG 秘钥来签名 commit。

git log --show-signature -1

若带有下面的提示,则说明成功。

gpg: Good signature from "Your Name <your@email.com>"

使用 GPG 签名你的 Commits》有6个想法

    1. Neo 文章作者

      😂What? GitHub Desktop 竟然不支持,这客户端功能不够啊,一直用 IDEA 的 git 管理没用过它,没想到竟是这样的客户端🤪

      回复
    1. Neo 文章作者

      好久以前见过一次别人聊过,一直没去了解过,刚了解了一下,好像。。。要凉了?😂

      回复
        1. Neo 文章作者

          我看了网上的一些评论,有不少负面的,然后又看了一下 Google Trends,近一年的热度在缓慢下降🤪

          回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注