文章彙整

Github的branch權限設定 – Required signed commits

By Astral Web 2 months agoNo Comments
首頁  /  網站設計與開發  /  Github的branch權限設定 – Required signed commits

這次介紹的protected branch的一項功能是 Required signed commits,這項功能的用途是用來驗證commit 的作者與github上的使用者是否符合,簡單來說就是做身分驗證,可避免身分被有心人士冒用,接來來馬上來介紹如何設定 Required signed commits。

 

第一步,賦予你的branch擁有Protected branch的Required signed commits功能,筆者以protected_branch為例子。

設定完之後,我們可以看到protected_branch已經出現在Branch protection rules清單了。

設定完成後,開啟終端機,筆者在這邊做個建立提交(commit)然後推(push)到github的protected_branch的測試,因為筆者已經賦予protected_branch擁有Required  signed commits的功能,所以現在凡是未簽署(signature)以及驗證(verify)失敗的提交(commit)都不能推上protected_branch。

建立檔案 fileb然後新增到git,在做提交(commit),整個過程並沒有對commit做簽署動作,接下來推到github看看會發生什麼事!

上圖顯示 remote: error: Commits must have valid signatures,很明顯必須要有簽署才能通過,好的,那我們接下來看要如果對提交簽署。

 

對commit簽署可以用到兩種加密工具GPG 跟 S/MIME,筆者使用的是GPG,GPG安裝方式不在此介紹,如果安裝成功,在終端機輸入gpg會顯示下圖訊息。

接下來產生金鑰,我使用的是RSA and RSA key的長度為4096 期限為一天,設定完輸入y進入下一步。

輸入Real name Email address Comment,這邊要注意 Real name以及Email 要跟你提交(commit)的username以及email一樣。

然後設定密碼(passphrase)

設定完之後,輸入 gpg –list-secret-keys –keyid-format LONG,可查看目前的金鑰有哪些,下圖可看到剛剛建立好的金鑰資訊,接下來我們會需要DE3A41B253B03BE3這串KEY。

需要把DE3A41B253B03BE3這串KEY設定在GIT的設定檔裡

輸入 git config –global user.signingkey DE3A41B253B03BE3,然後確定git 設定是否正確。

 

接下來建立檔案filed然後新增到git建立提交(commit) ,建立一筆附加簽署的提交指令為 git commit -S -m “備註”

提交建立成功,接下來只差最後只差一步了,就是把提交推上github。

上github自己的帳號設定介面有個SSH and GPG keys。

將你的GPG key 匯出(export),然後複製以下字串

(從—–BEGIN PGP PUBLIC KEY BLOCK—–

到—–END PGP PUBLIC KEY BLOCK—–)

貼到下面的文字區塊裡,然後按下Add GPG key。


下圖表示金鑰在github 新增成功。

接下來推上github,看是否會成功。

恭喜!如果你也跟筆者一樣看到你的提交(commit)已經推上github,表示你已經成功的完成所有步驟,注意你的提交後面有個綠字字體的verified的標籤,表示這個提交是經過驗證的。

筆者範例所使用的帳號是e314520513jp,所以從提交的作者簽署的Real Name 到github的帳號都是e314520513jp,經過github對要推上github的提交做身分驗證,確定身分一致,讓提交可以推上github。這個功能算是很嚴格的一項功能,如果你的branch有此項功能,任何人都無法去冒用其他人的帳號作為提交的作者,除非你擁有他人的金鑰以及金鑰密碼。

 

 

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  網站設計與開發

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。