
# 配置GPG公钥
#### 什么是GPG公钥
GPG（GNU Privacy Guard）是一种用于数字签名和认证的手段。
当用户需要将本地代码推送到代码托管仓库时，GPG公钥在Git中用于对代码的提交和Tag进行签名和验证，以确保提交的来源可信以及代码的完整性。
在配置GPG公钥前，用户可查看[约束与限制]和[配置GPG公钥操作步骤]。
GPG公钥生成和使用过程如下：
1. 生成GPG公钥。用户参考[配置GPG公钥操作步骤]生成一个由公钥和私钥组成的密钥对，且将GPG公钥配置到CodeArts Repo，而私钥则严格保密。
2. 签署数据。当开发者想要签署代码提交时，可以使用自己的私钥对其进行签名。
3. 验证签名。CodeArts Repo作为接收者可以通过公钥来验证签名的真伪。如果验证成功，说明数据没有被篡改过，且数据来自于GPG公钥关联的用户。
 
 #### 约束与限制
同一个GPG公钥不能重复使用。
 #### 配置GPG公钥操作步骤
1. 在[gpg4win官网](https://www.gpg4win.org/)下载GPG密钥生成工具。
2. 在本地Git客户端执行gpg --full-generate-key命令，按照提示，依次选择加密算法、密钥长度、过期时间、正确性后，输入用户名、邮箱、注释，如[图1]所示。
   
   邮箱配置请参考[配置提交邮箱步骤](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0076.html#codeartsrepo_03_0076__section753419219125)。
   图1生成GPG密钥对   
   ![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002251275565.png "点击放大")
   
   
3. 确认信息无误后，按照提示，输入O并按回车键，弹出输入密码窗口和确认密码窗口，正确输入密码后生成密钥。
   
   出现[图2]所示的信息，说明GPG密钥生成成功。
   图2GPG密钥生成成功   
   ![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002251195685.png "点击放大")
   
   
4. 执行如下命令，导出公钥。
   
   ```
   gpg --armor --export
   ```
   如[导出GPG公钥]所示，复制公钥到剪贴板，包括"-----BEGIN PGP PUBLIC KEY BLOCK-----"和"-----END PGP PUBLIC KEY BLOCK-----"。
   图3导出GPG公钥   
   ![](https://support.huaweicloud.com/usermanual-codeartsrepo/zh-cn_image_0000002251195681.png)
   
   
5. 用户登录代码托管服务仓库列表页，单击右上角昵称，选择"个人设置 \> 代码托管 \> GPG公钥"，进入GPG设置页面。
6. 单击"新建GPG公钥"按钮，进入新建GPG公钥页面，填写如下参数： 
   表1新建GPG公钥参数列表 
   | 参数    | 说明                                                           |
   |:---|:---|
   | GPG标题 | 自定义GPG公钥名称，限制在200字符以内。                                       |
   | GPG公钥 | 将[4]中复制的GPG公钥粘贴到此输入框。 |
   | 描述    | 非必填参数。当描述为空，列表显示--，字符上限为200。                                 |
      
   
   
7. 单击"确定"，如果成功新建GPG公钥，那么将返回到GPG公钥列表页面。当用户确认不再使用该GPG公钥时，可以删除此公钥。 
   如果添加失败，请检查用户是否已经添加过此公钥、粘贴时前后是否有多余的空格。
   
   
 
