如何为签署git提交的多个开发人员部署OpenPGP密钥?

如何为签署git提交的多个开发人员部署OpenPGP密钥?,git,github,gnupg,openpgp,Git,Github,Gnupg,Openpgp,有没有一种方法可以设置git,以便多个用户可以使用同一个部署密钥访问存储库,但仍然可以在用户名下标记他们的提交?我这样问是因为我们公司需要能够准确地跟踪谁对我们的存储库进行了更改,但最好让他们都能够使用相同的部署密钥将这些更改发送到GitHub上的远程。这可能吗 到目前为止,我的理解是这是可能的,因为他们会使用1个部署密钥来验证他们推动的更改,但是每个用户都有一个单独的签名密钥来标识这些特定用户所做的更改。这是否正确?您可以为每个开发人员创建单独的签名子密钥,并使用这些子密钥跟踪谁签署了提交。为

有没有一种方法可以设置git,以便多个用户可以使用同一个部署密钥访问存储库,但仍然可以在用户名下标记他们的提交?我这样问是因为我们公司需要能够准确地跟踪谁对我们的存储库进行了更改,但最好让他们都能够使用相同的部署密钥将这些更改发送到GitHub上的远程。这可能吗


到目前为止,我的理解是这是可能的,因为他们会使用1个部署密钥来验证他们推动的更改,但是每个用户都有一个单独的签名密钥来标识这些特定用户所做的更改。这是否正确?

您可以为每个开发人员创建单独的签名子密钥,并使用这些子密钥跟踪谁签署了提交。为此,请为每个用户运行
gpg--edit key[key id]
并运行
addkey
,只选择“签名”功能(您将遇到多个加密子密钥的问题)。通过
gpg--Export secret subkey
(记住用
后缀,否则GnuPG会将子键解析为主键),例如
gpg--Export secret subkey[subkey id]。开发者必须
gpg--import
他们各自的签名子密钥。所有这些子密钥发出的所有签名都将链接到主键并显示为主键发出的签名,但可以跟踪到所使用的子密钥

但是请注意,您不能将OpenPGP用户ID和子键与OpenPGP标准或GnuPG提供的工具链接。如果您只需要能够很少地将签名连接到给定的开发人员,那么您当然可以手动查找(通过记录哪个开发人员可以访问哪个私有子密钥);例如,如果您必须跟踪恶意代码或类似事件


OpenPGP实现这一点的方法是拥有公司密钥和由公司密钥认证的个人开发人员(主)密钥。不过,我认为GitHub无法遵循认证路径;如果GitHub上的“signature checked”标记很重要,那么您还必须分别注册每个开发人员的密钥。

我删除了与SSH相关的标记,因为它们与您的问题完全无关。这实际上是完美的;我们的存储库主要关注的是不可否认性;我们需要能够知道何时以及谁在代码中断/出现错误,无论何时代码中断。注册每个密钥是一个小小的让步,我想我们的开发人员不会介意的。:)非常感谢。