如何为Github添加GPG

前置

终端 gpg 命令正常使用

生成 GPG 密钥

ps：要和 git config 里的邮箱一致，查看命令如下

Copy
git config --global user.email

生成密钥

Copy
gpg --full-generate-key

选择密钥类型：默认即可

选择算法：默认

有效期：依自己

这些内容正确吗：y

姓名

邮箱（注意用 git config 里的）

注释：依自己

输入密码

获取密钥信息

Copy
gpg --list-keys

第一行开关是 pub，复制第二行的 id，在终端执行：

Copy
gpg --armor --export 复制的id

粟子：gpg --armor --export 4F113915706D141348CDC3DB5873563E6B2

执行完会获得一段有 BEGIN 开头，END 结尾的公钥，复制后去 github

将公钥粘贴进 Github

github-> 右上角头像 ->setting->SSH and GPG keys->New GPG key

起个 Title

将复制内容粘贴进 Key 中

Add GPG key

利用 GPG 私钥对 Git commit 签名

获取密钥列表

Copy
gpg --list-keys

复制 id

Copy
git config --global user.signingkey 复制的id

粟子：git config --global user.signingkey 4F113915706D141348CDC3DB5873563E6B2

在每次 commit 时，加上 - S 参数即可签名

Copy
git commit -S -m "..."

也可以自动要求签名

Copy
git config --global commit.gpgsign true

信任 Github 自身的 GPG 密钥

意义：网页端创建仓库没有显示 Verified，导致强迫症很不爽

导入 Github 自身的 GPG 密钥

Copy
curl https://github.com/web-flow.gpg | gpg --import

24 年 Github 过期了一条密钥，所以会导入两条

获取密钥列表

Copy
gpg --list-keys

复制那条 Github 没过期的公钥 id，执行签名操作

Copy
gpg --sign-key 968479A1AFF927E37D1A566BB5690EEEBB952194

输入 y 确认签名即可