在专业版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