利用GPG 簽署git commit,每一次推Code時都能確保是本人推的,提高安全性。
在沒有設定GPG之前你Commit程式會看到這個Unverified signature。
官方說法是要避免有心人士製造假的Commit。
接下來在終端機照著步驟輸入即可
gpg --full-generate-key
請選擇你要使用的金鑰種類:
(1) RSA 和 RSA (預設)
(2) DSA 和 Elgamal
(3) DSA (僅能用於簽署)
(4) RSA (僅能用於簽署)
(14) Existing key from card
你要選哪一個? 1 /* 選預設的就好 */
RSA 金鑰的長度可能介於 1024 位元和 4096 位元之間.
你想要用多大的金鑰尺寸? (3072) 4096 /* 可以選最大 */
你所要求的金鑰尺寸是 4096 位元
請指定這把金鑰的有效期限是多久.
0 = 金鑰不會過期
<n> = 金鑰在 n 天後會到期
<n>w = 金鑰在 n 週後會到期
<n>m = 金鑰在 n 月後會到期
<n>y = 金鑰在 n 年後會到期
金鑰的有效期限是多久? (0) 0 /* 這邊先不讓他過期 */金鑰完全不會過期
以上正確嗎? (y/N) y
接下來要輸入你GitLab的帳號和email,帳號要輸入的是你頭像旁邊那個
GnuPG 需要建構使用者 ID 以識別你的金鑰.
真實姓名: t5957810
電子郵件地址: t5957810@gmail.com
註釋: gpg key
你選擇了這個使用者 ID:
"t5957810 (gpg key) <t5957810@gmail.com>"
變更姓名(N), 註釋(C), 電子郵件地址(E)或確定(O)/退出(Q)? o
產生GPG Key的時候會問兩次,這邊簡單都選擇不輸入額外密碼,直接按OK。
然後就會成功產生GPG的私鑰了!
接下來我們需要用剛剛產生的private key 來匯出public key,
如果你忘了剛剛的private key是啥,可以用gpg --list-secret-keys
來列出所有的private key
gpg --armor --export 4E958B7FDF93896F80507D893DC731961EA6F271
把剛剛產生出來的public key全部複製起來,
到GitLab上貼上。
不過這樣還沒完,我們還需要設定全域的git config,這樣之後每個專案在commit
code時才都能有Signing 的功能。
記得你全域的user name和user email也要和剛剛我們設定GPG的帳號 & email一樣!
/* 這邊輸入剛剛的private key */
git config --global user.signingkey 4E958B7FDF93896F80507D893DC731961EA6F271
/* 將git commit GPG signin打開 */
git config --global commit.gpgsign true
git config --global tag.gpgsign true
/* 如果是windows電腦,額外設定這個,要用git裡的GPG,用Program Files (x86)裡的gpg會失敗 */
git config --global gpg.program "C:\Program Files\Git\usr\bin\gpg.exe"
都設定完成後再推code看看,有出現Verified 就代表成功了!
0 意見:
留言經過版主審核後才會出現哦!
因為不這樣做會有很多垃圾留言,不好意思 > <