2024年1月8日 星期一

Github 進行 gpg signature verification

問題描述

每次commit 都會透過gpg驗證簽名。linux上的gpg工具已經很完整了,但是windows上的gpg工具不太完整,需要額外設定。

現在設定git已經安裝完畢。


作法

1. 在ubuntu上無需作業。如果是使用windows,就需要下載gpg工具: https://gnupg.org/download/ 


2. 設定windows上的gpg使用位置,位置需要修改到gpg安裝的位置:

 git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"


3. 製作gpg key:

gpg --full-generate-key

裡面會有很多問答,就注意name跟email要跟github上面的帳號符合就可以了。


4. 把gpg public key放到github上。先看看gpg的資訊:

$ gpg --list-secret-keys --keyid-format=long

/Users/hubot/.gnupg/secring.gpg

------------------------------------

sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]

uid                          Hubot <hubot@example.com>

ssb   4096R/4BB6D45482678BE3 2016-03-10


上面顯示的結果是key ID為3AA5C34371567BD2的gpg。接下來就列出該gpg的public key:

gpg --armor --export 3AA5C34371567BD2

這邊會產生以 -----BEGIN PGP PUBLIC KEY BLOCK----- 並以 ---END PGP PUBLIC KEY BLOCK----- 結尾的字串。整段貼到github上:

settings > ssh and gpg keys > gpg keys > new gpg key 

( 可參考: https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account )


到這邊,github端就設定完成。


5. client端首先要進行gpg key unset。git看起來有"預設"模式,如果加密的長度跟加密方法跟預設不同就有可能無法讀取。所以最好就重跑一次unset:

git config --global --unset gpg.format

接下來把設定git會使用的gpg key,後面的ID取法就跟上面透過gpg --list-secret-keys --keyid-format=long指令取得的結果一樣,依照上面的例子就是:

git config --global user.signingkey 3AA5C34371567BD2


6. 設定每次都認證:

git config --global commit.gpgsign true


Ref:

https://stackoverflow.com/questions/36810467/git-commit-signing-failed-secret-key-not-available

https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key

https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key

沒有留言:

張貼留言

iscsi 連線問題筆記

如果要進行umount但是出現target buzy sudo fuser -km 掛載點 sudo umount 掛載點 iSCSI重啟 sudo open-iscsi restart  掛載lun iscsiadm -m discovery -t sendtargets -p...