使用gpg密鑰驗(yàn)證github提交

git是現(xiàn)在最流行的版本控制工具,而且它確實(shí)功能很強(qiáng)大。在使用git之前,首先要設(shè)置用戶名和電子郵箱兩個(gè)參數(shù)??赡苡腥藭?huì)有疑問,假如兩個(gè)不同的人使用相同的用戶名和電子郵箱進(jìn)行提交,會(huì)怎么樣呢?答案是可以的,git本身無法判斷,所以會(huì)把這兩個(gè)人識別為同一個(gè)人。為了可靠的驗(yàn)證每一次提交,git提供了gpg密鑰的驗(yàn)證功能。

首先我們需要安裝gpg工具,可以用Linux系統(tǒng)、Windows 10的Linux子系統(tǒng)、Git Bash工具等等,它們基本上都包含gpg工具。

創(chuàng)建gpg密鑰

首先驗(yàn)證一下gpg版本。


驗(yàn)證gpg版本

如果gpg版本在2.1.17以上,就用下面的命令:

gpg --full-generate-key

如果gpg版本在2.1.17以下,用下面的命令:

gpg --default-new-key-algo rsa4096 --gen-key

然后按照提示輸入密鑰類型、密鑰長度、過期時(shí)間、用戶名、密碼等信息,其中密鑰長度推薦4096,其他按需輸入即可。

輸入信息

密鑰創(chuàng)建完畢之后,用下面的命令來列出已經(jīng)創(chuàng)建好的密鑰ID:

gpg --list-secret-keys --keyid-format LONG
列出密鑰

然后就可以查看密鑰內(nèi)容了,你需要將ID替換為自己的:

gpg --armor --export 831CF40177EA9999

密鑰內(nèi)容以-----BEGIN PGP PUBLIC KEY BLOCK-----開始,以-----END PGP PUBLIC KEY BLOCK-----結(jié)束。

密鑰內(nèi)容

向github添加gpg密鑰

首先打開github用戶設(shè)置,然后在SSH and GPG keys中添加GPG密鑰,然后將上面得到的包括BEGINEND在內(nèi)的東西復(fù)制進(jìn)去并選擇添加,這樣就完成了GPG密鑰的添加工作。

添加gpg密鑰

當(dāng)然,細(xì)心的同學(xué)會(huì)發(fā)現(xiàn)這里截圖的密鑰ID和上面生成的好像不一樣,因?yàn)橐婚_始我是在Git Bash中設(shè)置生成的gpg密鑰,最后添加到github中。但是為了截圖,所以我又在WSL中重新運(yùn)行了一下命令,所以生成的密鑰不一樣。由于它們都是非對稱加密,所以公鑰和密鑰ID可以公開展示。

在git中設(shè)置gpg密鑰

最后一步就是在本地git中設(shè)置gpg密鑰了。首先用下面的命令列出所有g(shù)pg密鑰ID:

gpg --list-secret-keys --keyid-format LONG
密鑰ID

然后將密鑰ID添加到git設(shè)置中:

git config --global user.signingkey 831CF40177EA9999

如果要讓當(dāng)前git項(xiàng)目啟用簽名驗(yàn)證,使用下面的命令:

git config commit.gpgsign true

如果要讓所有項(xiàng)目都啟用簽名驗(yàn)證:

git config --global commit.gpgsign true

這樣一來,在使用git commit命令提交的時(shí)候,就會(huì)用gpg來簽名提交,當(dāng)然也可以在提交的時(shí)候使用git commit -S參數(shù)來顯式啟用驗(yàn)證。

最后,當(dāng)項(xiàng)目提交到Github之后,點(diǎn)擊進(jìn)入提交詳情查看的時(shí)候,就可以看到一個(gè)綠色的Verified標(biāo)志,表示這次提交已經(jīng)經(jīng)過驗(yàn)證,確認(rèn)是作者本人的提交了。

提交確認(rèn)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先來看 PGP 和 GPG 程序的介紹。 PGP PGP(英語:Pretty Good Privacy,中文含義"...
    faner閱讀 69,594評論 2 21
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,863評論 9 163
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,692評論 19 139
  • 《道德經(jīng)》中有一句原文是這樣說的:“是以圣人云 :受國之垢,是謂社稷主;受國不祥,是為天下王?!贝司涫鞘裁匆馑寄?,...
    度人自度閱讀 20,968評論 0 1
  • 總和朋友談老梗。因?yàn)榛貞浧饋碛形兜馈?在和時(shí)間長沒聯(lián)系的朋友聊天的時(shí)候,開場白總要有當(dāng)初最丟人的事。然后,隔開了長...
    鞋呢閱讀 471評論 2 2

友情鏈接更多精彩內(nèi)容