如何为签署 git 提交的多个开发人员部署 OpenPGP 密钥?
How to deploy OpenPGP keys for multiple developers signing git commits?
有没有办法设置 git 以便多个用户可以使用相同的部署密钥到存储库,但他们的提交仍然标记在他们的用户名下?我问是因为我们公司需要能够准确跟踪谁对我们的存储库进行了更改,但最好让他们都能够使用相同的部署密钥将这些更改发送到 GitHub。这可能吗?
到目前为止,我的理解是这是可能的,因为他们会使用 1 个部署密钥来验证他们推送的更改,但每个用户都会有一个单独的签名密钥来识别这些特定用户所做的更改。这是正确的吗?
您可以为每个开发人员创建单独的签名子密钥,并使用它们来追踪谁签署了提交。为此,每个用户 运行 gpg --edit-key [key-id]
和 运行 addkey
,仅选择 "signing" 功能(您将遇到多个加密子密钥的问题) .通过 gpg --export-secret-subkeys
将这些子键一一导出(并记得使用 !
作为后缀,否则 GnuPG 会将子键解析为主键),例如 gpg --export-secret-subkey [subkey-id]!
。开发人员将必须 gpg --import
他们各自的签名子密钥。由所有这些子项发出的所有签名将被link编辑并显示为由主键发出,但可以追踪到所使用的子项。
但请注意,您无法使用 OpenPGP 标准或 GnuPG 提供的工具 link OpenPGP 用户 ID 和子项。如果您只需要 很少 将签名连接到给定的开发人员,您当然可以手动查找(通过记录哪个开发人员可以访问哪个私有子密钥);例如,如果您必须追踪恶意代码或类似事件。
执行此操作的 OpenPGP 方法是拥有公司密钥和个人开发人员(主)密钥,它们由公司密钥认证。不过,我认为 GitHub 无法遵循认证路径;如果 GitHub 上的 "signature checked" 标记很重要,您还必须单独注册每个开发人员的密钥。
有没有办法设置 git 以便多个用户可以使用相同的部署密钥到存储库,但他们的提交仍然标记在他们的用户名下?我问是因为我们公司需要能够准确跟踪谁对我们的存储库进行了更改,但最好让他们都能够使用相同的部署密钥将这些更改发送到 GitHub。这可能吗?
到目前为止,我的理解是这是可能的,因为他们会使用 1 个部署密钥来验证他们推送的更改,但每个用户都会有一个单独的签名密钥来识别这些特定用户所做的更改。这是正确的吗?
您可以为每个开发人员创建单独的签名子密钥,并使用它们来追踪谁签署了提交。为此,每个用户 运行 gpg --edit-key [key-id]
和 运行 addkey
,仅选择 "signing" 功能(您将遇到多个加密子密钥的问题) .通过 gpg --export-secret-subkeys
将这些子键一一导出(并记得使用 !
作为后缀,否则 GnuPG 会将子键解析为主键),例如 gpg --export-secret-subkey [subkey-id]!
。开发人员将必须 gpg --import
他们各自的签名子密钥。由所有这些子项发出的所有签名将被link编辑并显示为由主键发出,但可以追踪到所使用的子项。
但请注意,您无法使用 OpenPGP 标准或 GnuPG 提供的工具 link OpenPGP 用户 ID 和子项。如果您只需要 很少 将签名连接到给定的开发人员,您当然可以手动查找(通过记录哪个开发人员可以访问哪个私有子密钥);例如,如果您必须追踪恶意代码或类似事件。
执行此操作的 OpenPGP 方法是拥有公司密钥和个人开发人员(主)密钥,它们由公司密钥认证。不过,我认为 GitHub 无法遵循认证路径;如果 GitHub 上的 "signature checked" 标记很重要,您还必须单独注册每个开发人员的密钥。