Skip to main content

配置 Web 提交签名

您可以启用自动签名在 GitHub Enterprise Server Web 界面中进行的提交。

Site administrators can configure web commit signing for 您的 GitHub Enterprise Server 实例.

关于 Web 提交签名

如果启用 Web 提交签名,GitHub Enterprise Server 将自动使用 GPG 对用户在 您的 GitHub Enterprise Server 实例 Web 界面上的提交进行签名。 由 GitHub Enterprise Server 签名的提交将具有已验证状态。 更多信息请参阅“关于提交签名验证”。

您可以启用 Web 提交签名、轮换用于 Web 提交签名的私钥以及禁用 Web 提交签名。

启用 Web 提交签名

  1. In the administrative shell, create a PGP key. Make note of the email address and key ID.

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • Use the default key type and at least 4096 bits with no expiry.
    • Use web-flow as the username.
    • 如果您在 管理控制台 中定义了无回复电子邮件地址,请使用该电子邮件地址。 如果没有,可使用任何电子邮件地址,例如 web-flow@my-company.com。 电子邮件地址不需要有效。
    • The PGP key cannot be protected by a passphrase.
  2. Define the key as a environment variable for GitHub Enterprise Server, replacing <YOUR-KEY-ID> with the GPG key ID.

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  3. Update the settings for GitHub Enterprise Server's commit signing service.

    Shell
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
    
    nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
  4. 启用 Web 提交签名。

    Shell
    ghe-config app.github.web-commit-signing-enabled true
  5. 应用配置,然后等待配置运行完成。

    Shell
    ghe-config-apply
  6. 通过内置身份验证或外部身份验证在 您的 GitHub Enterprise Server 实例 上创建新用户。 更多信息请参阅“关于企业的身份验证”。

    • 用户的用户名必须是 web-flow
    • 用户的电子邮件地址必须与您用于 PGP 密钥的地址相同。
  7. Run the following command, replacing KEY-ID with your PGP key ID.

    Shell
    gpg --armor --export KEY-ID
  8. Copy your PGP key, beginning with -----BEGIN PGP PUBLIC KEY BLOCK----- and ending with -----END PGP PUBLIC KEY BLOCK-----.

  9. Sign into GitHub Enterprise Server as the web-flow user.

  10. Add the public PGP key to the user's profile. For more information, see "Adding a GPG key to your GitHub account."

    Note: Do not remove other public keys from the list of GPG keys. If a public key is deleted, any commits signed with the corresponding private key will no longer be marked as verified.

  11. 从 GitHub Enterprise Server 上的管理帐户中,在任何页面的右上角,单击

    用于访问站点管理员设置的火箭飞船图标的屏幕截图

  12. 如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)

    "站点管理员" 链接的屏幕截图

  13. 在左侧边栏中,单击 管理控制台左侧边栏中的 管理控制台 选项卡

  14. 在页面顶部,单击 SettingsSettings 选项卡

  15. 在左侧边栏中,单击 EmailEmail 选项卡

  16. 在“No-reply email address(无需回复电子邮件地址)”下,键入用于 PGP 密钥的同一电子邮件地址。

    注意: 仅当您为 您的 GitHub Enterprise Server 实例 启用了电子邮件时,才会显示“No-reply email address(无需回复电子邮件地址)”字段。 更多信息请参阅“配置电子邮件通知”。

  17. 在左侧边栏下,单击 Save settings(保存设置)

    管理控制台 中保存设置按钮的屏幕截图

    注意: 管理控制台 中的保存设置将重新启动系统服务,这可能会导致用户可见的停机时间。

  18. 等待配置运行完毕。

    配置实例

轮换用于 Web 提交签名的私钥

  1. In the administrative shell, create a PGP key. Make note of the email address and key ID.

    Shell
    gpg --full-generate-key --pinentry-mode=loopback
    • Use the default key type and at least 4096 bits with no expiry.
    • Use web-flow as the username.
    • 使用 管理控制台 中定义的无回复电子邮件地址,该地址应与 web-flow 用户的电子邮件地址相同。
    • The PGP key cannot be protected by a passphrase.
  2. Define the key as a environment variable for GitHub Enterprise Server, replacing <YOUR-KEY-ID> with the GPG key ID.

    Shell
    ghe-config "secrets.gpgverify.web-signing-key" "$(gpg --export-secret-keys -a <YOUR-KEY-ID> | awk '{printf "%s\\n", $0}')"
  3. Update the settings for GitHub Enterprise Server's commit signing service.

    Shell
    sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/gpgverify/gpgverify.hcl.ctmpl:/etc/nomad-jobs/gpgverify/gpgverify.hcl
    
    nomad job run /etc/nomad-jobs/gpgverify/gpgverify.hcl
  4. Run the following command, replacing KEY-ID with your PGP key ID.

    Shell
    gpg --armor --export KEY-ID
  5. Copy your PGP key, beginning with -----BEGIN PGP PUBLIC KEY BLOCK----- and ending with -----END PGP PUBLIC KEY BLOCK-----.

  6. Sign into GitHub Enterprise Server as the web-flow user.

  7. Add the public PGP key to the user's profile. For more information, see "Adding a GPG key to your GitHub account."

    Note: Do not remove other public keys from the list of GPG keys. If a public key is deleted, any commits signed with the corresponding private key will no longer be marked as verified.

禁用 Web 提交签名

您可以对 您的 GitHub Enterprise Server 实例 禁用 web 提交签名。

  1. 在管理 shell 中,运行以下命令。

    Shell
    ghe-config app.github.web-commit-signing-enabled false
  2. 应用配置。

    Shell
    ghe-config-apply