GitHub Commit signature verification - 确定每次变更来源是可以信任的

GnuPG (简称 GPG),允许作者对资料与通信进行加密与签章。你可以在本地端使用 GPG 对 Commit 与 Tag 进行签章,再推送(Push) 至 GitHub 时,GitHub 会以公开金钥进行验证,确认变更来源,让其他人确信这次的变更来源是可以信任的。

https://ithelp.ithome.com.tw/upload/images/20210924/20091494bYTZtTtmCE.png


产生 GPG Key pair 并上传 public key 至 GitHub

  1. 点选开始 > 输入 Git Bash > 开启 Git Bash (需要安装 Git,请自行安装,这里不在赘述)
    https://ithelp.ithome.com.tw/upload/images/20210924/20091494lfeDzwepmb.png

  2. 输入指令 gpg --full-generate-key,并依序输入(如下图所示)
    选项 1: 1 (RSA and RSA)
    选项 2: 4096
    选项 3: 直接 Enter (使用预设0)
    选项 4: Y

https://ithelp.ithome.com.tw/upload/images/20210925/20091494zqbKcs4t8M.png

  1. 输入你的 ID 与信箱,Comment 可以留空白,最後选择 O
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494yX4KqYEija.png

  2. 输入你的金钥密码
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494IEQoR8sHht.png

  3. 输入指令 gpg --list-keys --keyid-format LONG,列出安装於本机的金钥组合
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494ZKvhboj1pd.png

  4. 输入指令 gpg --armor --export [上途中红色线部分] | clip,即可复制公开金钥
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494mYepTyTZlH.png

  5. 点选右上角个人头像旁的下拉选单 > Settings
    https://ithelp.ithome.com.tw/upload/images/20210924/20091494HpeHaYxfjI.png

  6. 左边选单找到 SSH and GPG keys,点选 New GPG Key
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494O1IYb4Kx6f.png

9.贴上公开金钥,点选 Add GPG key,即完成设定
https://ithelp.ithome.com.tw/upload/images/20210925/20091494UJWIbxyfmI.png


Sign Commit

  1. 在 local 端以命令列开启专案位置,输入 git config commit.gpgsign true,并且输入 git config --global gpg.program "C:\Program Files\Git\usr\bin\gpg.exe" 设定 gpg 位置
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494U7ZXe52hMj.png

  2. 简单程序做一些变更後,commit/push 你的程序,回到你的 Repo,点选刚刚更新的 commit
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494nXGL3QWIUB.png

  3. 可以看见 Commit 多了 Verified 标注
    https://ithelp.ithome.com.tw/upload/images/20210925/20091494XvGX0fUWXe.png


阅读完 GitHub 一系列安全相关的文章,您应该对於 GitHub 上的为何有这些功能如何使用这些功能有更进一步的了解,也强力建议你在阅读这些文章的同时,也顺手将这些功能启用,避免有任何资料泄漏、程序漏洞或钓鱼事件发生。在下一篇文章开始,我们将开始介绍 GitHub Project Board(看板)与社群功能。

若喜欢我的文章,欢迎点 like, 分享与订阅。


参考资料

1.GnuPG


<<:  Day 19: 人工智慧初探 优化器的作用

>>:  9. 你过劳了吗?

前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day12 文章列表

连续 30 天不中断每天上传一支教学影片,教你如何用 React 加上 Firebase 打造社群...

谁说低代码平台上就不能写自己的CSS

都已经千辛万苦的学会CSS了,不用用这个技能不是就太浪费了吗? 对,本篇文就是要来看看怎麽在低代码平...

Day 3 - 基本资料型态、输入、基本运算式

大家好,我是长风青云。今天是铁人赛第三天,也是中秋连假第一天。 youtube影片在上字幕的部分,後...

[Day 15] v-bind绑定class和style

新的一天,又又又要想一个主题了,觉得一天过的好快~~ 今天要来讲的是v-bind,我们在前几天就已经...

Javascript 取得现在的年月日时分秒

var oDate = new Date(); var year = oDate.getFullYe...