关于
归档
友链
猫咪
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
归档
友链
猫咪
后台
Windows下使用GPG对Git Commit进行签名
开发
·
2020-08-21
LiesAuer
# 安装Gpg4win 前往[官网](https://gpg4win.org/download.html)下载并安装`Gpg4win`。 ![TIM截图20200821092124.png](https://storage.liesauer.net/2020/08/548415563.png) 注意安装时一定要勾选`Kleopatra`组件,我们需要使用这个工具来创建、管理证书。 ![TIM截图20200821092315.png](https://storage.liesauer.net/2020/08/2490477745.png) 然后选择安装目录时,一定要记得安装的目录在哪,建议直接复制下来,至于为啥,这里先卖个关子。 ![TIM截图20200821092345.png](https://storage.liesauer.net/2020/08/2849712267.png) # 创建、导入证书 安装完毕后,打开`Kleopatra`,然后选择`新建密钥对`,如果你已有证书的话也可以直接导入使用。 ![TIM截图20200821092502.png](https://storage.liesauer.net/2020/08/3016787763.png) 然后输入你的名字和邮箱,注意这里的邮箱一定要和你GitHub关联的邮箱一致,否则GitHub是不认你的签名的,因为邮箱对不上,名字则没有要求,然后高级设置,将有效期设为无期限。 ![TIM截图20200821092618.png](https://storage.liesauer.net/2020/08/375678924.png) 确认你的信息是否无误 ![TIM截图20200821092649.png](https://storage.liesauer.net/2020/08/2077891009.png) 点击新建,然后会让你输入证书的密码,切记不要丢失了哦。 ![TIM截图20200821092702.png](https://storage.liesauer.net/2020/08/1933015293.png) 然后证书就这么简单的创建好了。 ![TIM截图20200821092733.png](https://storage.liesauer.net/2020/08/2816938977.png) # 导出证书 我们右键我们创建好的证书,选择`导出`以及`导出绝密密钥`,将证书以及私钥保存好,以便备用。 ![TIM截图20200821092938.png](https://storage.liesauer.net/2020/08/2305543832.png) 双击我们的证书,选择`生成吊销证书`,同样保存一份,吊销证书的用处是万一证书不小心泄露了,我们可以用吊销证书来把我们的证书吊销掉,以防歹人继续使用泄露的证书干坏事。 ![TIM截图20200821093047.png](https://storage.liesauer.net/2020/08/2595778513.png) 保存的私钥和吊销证书一定要保存妥当,不要泄露给别人。 ![TIM截图20200821093202.png](https://storage.liesauer.net/2020/08/2976093450.png) # 查看证书 此时我们终端输入`gpg -k`以及`gpg -K`应该能看到我们创建好的证书。`-k`查看公钥,`-K`查看私钥。 ![TIM截图20200821093816.png](https://storage.liesauer.net/2020/08/3459075224.png) # 导入GitHub 我们打开GitHub,进入[Settings->SSH and GPG keys->New GPG key](https://github.com/settings/gpg/new),将我们保存下来的证书公钥粘贴进去,注意是公钥不是私钥。 ![TIM截图20200821093612.png](https://storage.liesauer.net/2020/08/1139020842.png) # 配置Git签名 使用命令指定签名所使用的证书,这里的`key`就是我们之前查看证书所看到的那一串长长的东西 ```shell git config --global user.signingkey
``` ![TIM截图20200821093849.png](https://storage.liesauer.net/2020/08/3370594052.png) 如果你只想当前仓库签名 ```shell git config commit.gpgsign true ``` 如果所有仓库签名 ```shell git config --global commit.gpgsign true ``` 关闭签名 ```shell git config commit.gpgsign false ``` 然后我们创建一个新仓库测试签名效果,然而会发现报错了!报`No secret key`! ![TIM截图20200821094235.png](https://storage.liesauer.net/2020/08/3486745896.png) 为什么呢?我们之前查看证书的时候不是看到都有吗?还记得我一开始卖的关子吗,其实是因为git默认使用的那个`gpg`程序并不是我们安装好的那个,所以我们还得配置成使用我们新安装的`gpg`。这里的安装目录就是我们`Gpg4win`的上一级,比如安装在`D:/Program Files (x86)/Gpg4win`的话,则是`D:/Program Files (x86)`。 ```shell git config --global gpg.program "<安装目录>/GnuPG/bin/gpg.exe" ``` 然后重新commit,你就发现签名成功了!这里`gpg`程序的坑弄了我好久。 ![TIM截图20200821094823.png](https://storage.liesauer.net/2020/08/565551600.png) 然后推送至GitHub看看效果,你会发现带有一个绿标`Verified`。 ![TIM截图20200821094934.png](https://storage.liesauer.net/2020/08/1651717811.png) # 配置密码缓存时间 你们可能已经发现了,我们在提交的时候弹了个窗让我们输入密码 ![TIM截图20200821111214.png](https://storage.liesauer.net/2020/08/1217147096.png) 怎样可以去掉这个烦人的密码输入呢?我们打开`Kleopatra`,并选择`设置`菜单的`配置Kleopatra` ![TIM截图20200821111350.png](https://storage.liesauer.net/2020/08/348927282.png) 切换到`GnuPG系统`->`Private Keys` ![TIM截图20200821111457.png](https://storage.liesauer.net/2020/08/897974058.png) 默认的,密码缓存时间是600秒,即十分钟,设为`0`则每次都需要输入密码,个人建议是在私人电脑上设置`86400`秒,即一天一输。至此所有的配置都OK了。
git
github
取消回复
提交评论
dw673j
2023-11-25
回复
好顶赞!!!!
poivre
2022-08-14
回复
太感谢了!No secret key 被 no secret key 这个报错折磨了很久很久!
瞅一瞅叭
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
热门文章
HumanMod - 免费的集N多功能于一身的HFF(人类一败涂地)插件
记抖音爬虫中所遇到的坑
设置网易邮箱大师为Win10默认邮件客户端
微信表情包工具【2023/05/04】更新
更改TLY本地代理端口
让Tauri前端部分调试如调试常规Web项目般丝滑
使用 v2rayN + SSTap 对 Win10 + WSL2 进行超简单易用的科学上网设置
最新评论
ask-to-you: 不是的,你去搜这东西 你就已经在关注了 你肯定买了
土木坛子: 有趣的灵魂。
土木坛子: 确实,真真假假,但不是每个人都能辨别出来,感谢博主指出来。
网友小宋: 之前一直在想,为什么1panel不集成钉钉等等机器人
优惠券网站: msdn,i tell you上面好像有纯净版的系统呀。。。博主...
PinHsin: pipreqs生成的模块和本地版本不一致是什么原因呢
优惠券平台: 写的很详细具体,学习到了,多谢博主的分享!⌇●﹏●⌇
关于站长
佛山
liesauer#liesauer.net
LiesAuer
CC BY-NC-SA 4.0
粤ICP备16094588号-1
萌ICP备20245567号
Theme
Jasmine
by
Kent Liao
好顶赞!!!!
太感谢了!No secret key 被 no secret key 这个报错折磨了很久很久!