From 96c935843be1b7a01c10ef5359c3a4d8a4423693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=86=8A=E4=BD=B3=E7=89=A7?= Date: Mon, 7 Sep 2020 19:53:48 +0800 Subject: [PATCH] gpg-sign --- .../project_signed_and_unsigned_commits.png | Bin 0 -> 57195 bytes ...ect_signed_commit_unverified_signature.png | Bin 0 -> 22436 bytes docs/user/project/repo/gpg-sign.md | 166 +++++++----------- 3 files changed, 68 insertions(+), 98 deletions(-) create mode 100644 docs/img/project_signed_and_unsigned_commits.png create mode 100644 docs/img/project_signed_commit_unverified_signature.png diff --git a/docs/img/project_signed_and_unsigned_commits.png b/docs/img/project_signed_and_unsigned_commits.png new file mode 100644 index 0000000000000000000000000000000000000000..fa83e6c1c78296c2ae0594132a06528eb59c9c7e GIT binary patch literal 57195 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¦~~c12Ag~sgTMh{Aw)7TwOyF=`Wc0naPm#xU$5`) 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

^s30@BmkGHad7y%p@ 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

-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 aU)rH(F@gSdt70d!QkfcEL_IOY5dH(Xn%W-# literal 0 HcmV?d00001 diff --git a/docs/user/project/repo/gpg-sign.md b/docs/user/project/repo/gpg-sign.md index f055d59..22cd81d 100644 --- a/docs/user/project/repo/gpg-sign.md +++ b/docs/user/project/repo/gpg-sign.md @@ -1,44 +1,35 @@ -# GPG签名提交[](#GPG签名提交 "Permalink") +# GPG签名提交[](#gpg-sign "Permalink") -版本历史 +您可以使用 GPG 密钥对在 CODEChina 代码仓库中的 Git 提交进行签名。 如果可以验证提交者的身份,则已签名的提交将标记为 **已验证**,为了验证提交者的身份,CODEChina 需要他们的公共 GPG 密钥。 -* 在 GitLab 9.5 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/9546) . -* 在 GitLab 10.1 中添加了子项支持. +目前尚不支持通过 GPG 验证标签。 -您可以使用 GPG 密钥对在 GitLab 存储库中进行的 Git 提交进行签名. 如果可以验证提交者的身份,则已签名的提交将标记为" **已**验证". 为了验证提交者的身份,GitLab 需要他们的公共 GPG 密钥. +## GPG 签名[](#how-we-handles-gpg "Permalink") -**注意:**术语 GPG 用于所有与 OpenPGP / PGP / GPG 相关的材料和实现. +CODEChina 使用其自己的密钥环来验证 GPG 签名,它不访问任何公钥服务器。 -目前尚不支持通过 GPG 验证的标签. +对于要由 CODEChina 验证的提交: -有关 GPG 的更多详细信息,请参见[进一步阅读](#further-reading)部分. +* 提交者必须具有 GPG 公钥/私钥对 +* 提交者的公钥必须已上传到其 CODEChina 帐户 +* GPG 密钥中的一封电子邮件必须与提交者在 CODEChina 中使用的**经过验证的**电子邮件地址匹配 +* 提交者的电子邮件地址必须与 GPG 密钥中验证的电子邮件地址匹配 -## How GitLab handles GPG[](#how-gitlab-handles-gpg "Permalink") +## 生成 GPG 密钥[](#generating-a-gpg-key "Permalink") -GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥服务器. +如果您还没有 GPG 密钥,建议您参考以下步骤生成您的 GPG 密钥: -对于要由 GitLab 验证的提交: +1. 为您的操作系统[安装 GPG](https://www.gnupg.org/download/index.html)。如果您的操作系统安装了`gpg2`,在下面的命令中用`gpg2`替换`gpg`即可。 +2. 使用以下命令生成私钥/公钥对,并根据系统引导一步步设置: -* 提交者必须具有 GPG 公钥/私钥对. -* 提交者的公钥必须已上传到其 GitLab 帐户. -* GPG 密钥中的一封电子邮件必须与提交者在 GitLab 中使用的**经过验证的**电子邮件地址匹配. -* 提交者的电子邮件地址必须与 GPG 密钥中验证的电子邮件地址匹配. - -## Generating a GPG key[](#generating-a-gpg-key "Permalink") - -如果您还没有 GPG 密钥,则以下步骤将帮助您入门: - -1. 为您的操作系统[安装 GPG](https://www.gnupg.org/download/index.html) . 如果您的操作系统具有`gpg2`安装,更换`gpg`与`gpg2`在下面的命令. -2. 使用以下命令生成私钥/公钥对,这将产生一系列问题: - - ``` + ```markdown gpg --full-gen-key ``` **注意:**在某些情况下,例如 Windows 和其他 macOS 版本上的 Gpg4win,此处的命令可能是`gpg --gen-key` . -3. 第一个问题是可以使用哪种算法. 选择所需的类型或按`Enter 键`选择默认类型(RSA 和 RSA): +3. 第一步需要选择使用哪种算法,选择所需的类型或按`Enter 键`选择默认类型(RSA 和 RSA): - ``` + ```markdown Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal @@ -47,17 +38,17 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 Your selection? 1 ``` -4. 下一个问题是密钥长度. 我们建议您选择`4096` : +4. 下一步是密钥长度,我们建议您选择`4096` : - ``` + ```markdown RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 4096 Requested keysize is 4096 bits ``` -5. 指定密钥的有效期. 这是主观的,您可以使用默认值,该值永远不会过期: +5. 接下来指定密钥的有效期,由您自己设置,您也可以使用永远不会过期的默认值: - ``` + ```markdown Please specify how long the key should be valid. 0 = key does not expire = key expires in n days @@ -68,15 +59,15 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 Key does not expire at all ``` -6. 通过输入`y`确认您给出的答案是正确的: +6. 接下来通过输入`y`确认您给出的答案是正确的: - ``` + ```markdown Is this correct? (y/N) y ``` -7. 输入您的真实姓名,与此键关联的电子邮件地址(应与您在 GitLab 中使用的经过验证的电子邮件地址匹配)和可选注释(按`Enter`跳过): +7. 接下来输入您的真实姓名,与此密钥关联的电子邮件地址(应与您在 CODEChina 中使用的经过验证的电子邮件地址匹配)和可选注释(按`Enter`跳过): - ``` + ```markdown GnuPG needs to construct a user ID to identify your key. Real name: Mr. Robot @@ -88,18 +79,18 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O ``` -8. 在询问时选择一个强密码,然后输入两次以确认. -9. 使用以下命令列出您刚刚创建的私密 GPG 密钥: +8. 接下来设置一个强密码,然后输入两次以确认 +9. 到这一步您的 GPG 密钥已经生成,您可以使用以下命令列出刚刚创建好的私密 GPG 密钥: - ``` + ```markdown gpg --list-secret-keys --keyid-format LONG ``` - 将``替换为您在上面输入的电子邮件地址. + 将``替换为您在上面输入的电子邮件地址。 -10. 复制以`sec`开头的 GPG 密钥 ID. 在以下示例中,即`30F2B65B9246B6CA` : +10. 复制以`sec`开头的 GPG 密钥 ID, 在以下示例中,即`30F2B65B9246B6CA` : - ``` + ```markdown sec rsa4096/30F2B65B9246B6CA 2017-08-18 [SC] D5E4F29F3275DC0CDA8FFC8730F2B65B9246B6CA uid [ultimate] Mr. Robot @@ -108,45 +99,39 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 11. 导出该 ID 的公共密钥(替换上一步中的密钥 ID): - ``` + ```markdown gpg --armor --export 30F2B65B9246B6CA ``` -12. 最后,复制公钥并将其[添加到您的个人资料设置中](#adding-a-gpg-key-to-your-account) +12. 最后一步,复制公钥并将其[添加到您的个人资料设置中](#adding-a-gpg-key-to-your-account)即可 -## Adding a GPG key to your account[](#adding-a-gpg-key-to-your-account "Permalink") +## 在您的账号中添加 GPG 密钥[](#adding-a-gpg-key-to-your-account "Permalink") -**注意:**添加密钥后,就无法对其进行编辑,只能将其删除. 如果粘贴无效,则必须删除有问题的密钥并重新添加. +**注意:**添加密钥后,就无法对其进行编辑,只能将其删除。如果粘贴无效,则必须删除有问题的密钥并重新添加。 您可以在个人资料的设置中添加 GPG 密钥: -1. 点击右上角的头像,然后转到**"设置"** . - - [![Settings dropdown](img/5e2e81b44d67af322056491cf32bb8da.png)](../../../profile/img/profile_settings_dropdown.png) +1. 点击右上角的头像,然后转到**"设置"** -2. 导航至**GPG 密钥**标签,然后将您的*公共*密钥粘贴到"密钥"框中. +2. 点击**GPG 密钥**,然后将您的*公共*密钥粘贴到"密钥"框中 - [![Paste GPG public key](img/d04d999de9102632af46c867821c47c3.png)](img/profile_settings_gpg_keys_paste_pub.png) +3. 最后,单击**添加键**将其添加到 CODEChina,您将能够看到其指纹,相应的电子邮件地址和创建日期 -3. 最后,单击**添加键**将其添加到 GitLab. 您将能够看到其指纹,相应的电子邮件地址和创建日期. +## 在 Git 中使用 GPG 密钥[](#associating-your-gpg-key-with-git "Permalink") - [![GPG key single page](img/8a56e678752a9bd9def98422dee92f3e.png)](img/profile_settings_gpg_keys_single_key.png) - -## Associating your GPG key with Git[](#associating-your-gpg-key-with-git "Permalink") - -[创建 GPG 密钥](#generating-a-gpg-key)并将其[添加到您的帐户之后](#adding-a-gpg-key-to-your-account) ,是时候告诉 Git 使用哪个密钥了. +[创建 GPG 密钥](#generating-a-gpg-key)并将其[添加到您的帐户之后](#adding-a-gpg-key-to-your-account) ,就可以开始在 git 中开始使用您的 GPG 密钥了。 1. 使用以下命令列出您刚刚创建的私密 GPG 密钥: - ``` + ```markdown gpg --list-secret-keys --keyid-format LONG ``` - 将``替换为您在上面输入的电子邮件地址. + 将``替换为您在上面输入的电子邮件地址 -2. 复制以`sec`开头的 GPG 密钥 ID. 在以下示例中,即`30F2B65B9246B6CA` : +2. 复制以`sec`开头的 GPG 密钥 ID,在以下示例中,即`30F2B65B9246B6CA` : - ``` + ```markdown sec rsa4096/30F2B65B9246B6CA 2017-08-18 [SC] D5E4F29F3275DC0CDA8FFC8730F2B65B9246B6CA uid [ultimate] Mr. Robot @@ -155,11 +140,11 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 3. 告诉 Git 使用该密钥对提交进行签名: - ``` + ```markdown git config --global user.signingkey 30F2B65B9246B6CA ``` - 用您的 GPG 密钥 ID 替换`30F2B65B9246B6CA` . + 不要忘了用您的 GPG 密钥 ID 替换`30F2B65B9246B6CA` 4. (可选)如果 Git 使用`gpg`并且出现诸如`secret key not available`或`gpg: signing failed: secret key not available` ,请运行以下命令更改为`gpg2` : @@ -167,70 +152,55 @@ GitLab 使用其自己的密钥环来验证 GPG 签名. 它不访问任何公钥 git config --global gpg.program gpg2 ``` -## Signing commits[](#signing-commits "Permalink") +## GPG 签名提交[](#signing-commits "Permalink") [创建 GPG 密钥](#generating-a-gpg-key)并将其[添加到您的帐户之后](#adding-a-gpg-key-to-your-account) ,您可以开始对提交进行签名: 1. 像以前一样提交,唯一的区别是添加了`-S`标志: - ``` + ```markdown git commit -S -m "My commit msg" ``` -2. 询问时输入 GPG 密钥的密码. -3. 推送至 GitLab 并检查您的提交[是否已通过验证](#verifying-commits) . +2. 按提示输入 GPG 密钥的密码 +3. 推送至 CODEChina 并检查您的提交[是否已通过验证](#verifying-commits) 如果您不想在每次提交时都键入`-S`标志,则可以告诉 Git 自动签名您的提交: -``` +```markdown git config --global commit.gpgsign true ``` -## Verifying commits[](#verifying-commits "Permalink") +## 验证提交[](#verifying-commits "Permalink") -1. 在项目或[合并请求中](../../merge_requests/index.html) ,导航到" **提交"**选项卡. 签名的提交将显示包含" Verified"或" Unverified"的徽章,具体取决于 GPG 签名的验证状态. +1. 在项目或[合并请求](/docs/user/project/merge-request.md)中,切换到" **提交"**选项卡,签名的提交将显示包含" Verified"或" Unverified"的徽章,具体取决于 GPG 签名的验证状态 - [![Signed and unsigned commits](img/7d08a10bdee492162fdb554fb3033f0d.png)](img/project_signed_and_unsigned_commits.png) + [![Signed and unsigned commits](/docs/img/project_signed_and_unsigned_commits.png)](/docs/img/project_signed_and_unsigned_commits.png) -2. 通过单击 GPG 徽章,将显示签名的详细信息. +2. 通过单击 GPG 徽章,将显示签名的详细信息 - [![Signed commit with verified signature](img/544adf1331ba8dc0c6391bf07ba6df8c.png)](img/project_signed_commit_verified_signature.png) + [![Signed commit with verified signature](/docs/img/project_signed_commit_unverified_signature.png)](img/project_signed_commit_unverified_signature.png) - [![Signed commit with verified signature](img/cc6935399d2235840119ad00eb778fc9.png)](img/project_signed_commit_unverified_signature.png) +## 撤销 GPG 密钥[](#revoking-a-gpg-key "Permalink") -## Revoking a GPG key[](#revoking-a-gpg-key "Permalink") - -撤消密钥将**取消验证**已签名的提交. 使用此密钥验证的提交将变为未验证状态. 撤销此密钥后,将来的提交也将保持不变. 如果您的密钥已被盗用,则应使用此操作. +撤消密钥将**取消验证**已签名的提交,使用此密钥验证的提交将变为未验证状态。撤销此密钥后,将来的提交也将保持不变. 如果您的密钥已被盗用,则应使用此操作。 撤销 GPG 密钥: -1. 点击右上角的头像,然后转到**"设置"** . -2. 导航到**GPG 键**标签. -3. 单击您要删除的 GPG 键**旁边的撤消** . +1. 点击右上角的头像,然后转到**"设置"** +2. 点击**GPG 键**标签 +3. 单击您要删除的 GPG 键旁边**的撤消** -## Removing a GPG key[](#removing-a-gpg-key "Permalink") +## 删除 GPG 密钥[](#removing-a-gpg-key "Permalink") -删除密钥**不会**取消**验证**已签名的提交. 使用此密钥验证的提交将保持验证状态. 删除此密钥后,只有未按下的提交才会保持未验证状态. 要取消验证已签名的提交,您需要从您的帐户中[撤销关联的 GPG 密钥](#revoking-a-gpg-key) . +删除密钥**不会**取消已提交签名的**验证**状态,使用此密钥验证的提交将保持验证状态。删除此密钥后,只有未提交的才会保持未验证状态。要取消验证已签名的提交,您需要从您的帐户中[撤销关联的 GPG 密钥](#revoking-a-gpg-key) 。 要从您的帐户中删除 GPG 密钥,请执行以下操作: -1. 点击右上角的头像,然后转到**"设置"** . -2. 导航到**GPG 键**标签. -3. 单击您要删除的 GPG 密钥旁边的垃圾桶图标. - -## Rejecting commits that are not signed[](#rejecting-commits-that-are-not-signed-premium "Permalink") - -您可以将您的项目配置为拒绝不是通过[推送规则进行](../../../../push_rules/push_rules.html) GPG 签名的提交. - -## GPG signing API[](#gpg-signing-api "Permalink") - -了解如何[通过 API 通过提交获取 GPG 签名](../../../../api/commits.html#get-gpg-signature-of-a-commit) . - -## Further reading[](#further-reading "Permalink") +1. 点击右上角的头像,然后转到**"设置"** +2. 点击**GPG 键**标签 +3. 单击您要删除的 GPG 密钥旁边的删除图标 -有关 GPG 的更多详细信息,请参见: +## 拒绝未签名的提交[](#rejecting-commits-that-are-not-signed-premium "Permalink") -* [Git Tools - Signing Your Work](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) -* [Managing OpenPGP Keys](https://riseup.net/en/security/message-security/openpgp/gpg-keys) -* [OpenPGP Best Practices](https://riseup.net/en/security/message-security/openpgp/best-practices) -* [Creating a new GPG key with subkeys](https://www.void.gr/kargig/blog/2013/12/02/creating-a-new-gpg-key-with-subkeys/) (advanced) \ No newline at end of file +您可以将您的项目配置为拒绝不是通过[推送规则进行](/docs/user/project/push-rules.md) GPG 签名的提交 -- GitLab