关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
切换模式
返回顶部
首页
说说
日常
开发
游戏
资源
虚拟货币
首页
说说
日常
开发
游戏
资源
虚拟货币
关于
Buy Me a Coffee
归档
友链
猫咪
RSS
后台
Windows下使用GPG对Git Commit进行签名
开发
·
2020-08-21
·
更新于 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 这个报错折磨了很久很久!
瞅一瞅叭
域名出售
uterminal.ai
服务器推荐
RackNerd 2C2G $20.98/年(美国 隐藏款)
狗云 1C0.75G ¥150/年(香港 BGP)
最新评论
tinker: 为什么运行一段时间就会停止,重启又恢复!没有报错信息,频道信息和...
pansoo: 大佬,这个只能下载文件吗?能不能保存频道消息
Miller: 最好再多加一个查漏补缺的功能(捂脸(/ω\)),因为抓取了3天才...
Miller: 大佬,好像不会爬取jpeg文件,图片和视频数量对不上,是不是图片...
cola: 大佬,可以爬取电报频道的评论内容嘛
Miller: 大佬我终于会了,用cmd命令cd /d G:\cco,感谢大佬指点!
Miller: https://img13.chkaja.com/files/2...
关于站长
广东 佛山
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 这个报错折磨了很久很久!