准备工作
首先要安装好 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>"
这个确实很酷炫,但是 GitHub Desktop 不支持,所幸的是idea支持
😂What? GitHub Desktop 竟然不支持,这客户端功能不够啊,一直用 IDEA 的 git 管理没用过它,没想到竟是这样的客户端🤪
安利一下 keybase.io.
好久以前见过一次别人聊过,一直没去了解过,刚了解了一下,好像。。。要凉了?😂
阿咧?为啥要凉了。
我看了网上的一些评论,有不少负面的,然后又看了一下 Google Trends,近一年的热度在缓慢下降🤪