在專業版Git中,標記您的版本:我們是否應該共享用於檢查簽入git存儲庫的公鑰?
它顯示了一種將公鑰集成到git中的方法,因此同步它的用戶可以添加該公鑰並驗證簽名標記。
這種方式實際上是否安全?有人可以改變公鑰並重新簽名。我認爲我們應該從一個單獨的授權方式獲得公鑰,對吧?
在這本書中的命令粘貼如下:
$ git tag -s v1.5 -m 'my signed 1.5 tag'
You need a passphrase to unlock the secret key for
user: "Scott Chacon <[email protected]>"
1024-bit DSA key, ID F721C45A, created 2009-02-09
$ gpg --list-keys
/Users/schacon/.gnupg/pubring.gpg
---------------------------------
pub 1024D/F721C45A 2009-02-09 [expires: 2010-02-09]
uid Scott Chacon <[email protected]>
sub 2048g/45D02282 2009-02-09 [expires: 2010-02-09]
$ gpg -a --export F721C45A | git hash-object -w --stdin
659ef797d181633c87ec71ac3f9ba29fe5775b92
$ git tag -a maintainer-pgp-pub 659ef797d181633c87ec71ac3f9ba29fe5775b92
$ git show maintainer-pgp-pub | gpg --import
你爲什麼會接受公關更改公鑰? – ceejayoz
爲什麼你會接受惡意請求?這不是攻擊模式:而是想到攻擊者以某種方式獲取存儲庫憑證並能夠上傳惡意提交(包括新密鑰),而不發出請求。 –
我認爲(也許我錯了)通過從分離和授權的方式獲得可信的公鑰來保證安全性,然後使用該密鑰來驗證簽名標籤,這也驗證標籤指向的提交以及承諾。因此無論我在哪裏獲取存儲庫,都會對其進行驗證。根據您的意見,如果安全由授權的git服務器保證,爲什麼我們需要首先簽署標籤? – TangXC