iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
DevOps

不僅是程式碼代管平台 - Github 能做些什麼?系列 第 25

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


上一篇
GitHub Account Security - 立刻啟用 Two-factor authentication
下一篇
GitHub Project Board - 看板方法
系列文
不僅是程式碼代管平台 - Github 能做些什麼?30

尚未有邦友留言

立即登入留言