生成 GPG Key

输入用户名和邮箱,注意邮箱必须与 Gitee 提交邮箱一致


下载并安装 https://gpgtools.org/
生成 GPG Key
输入用户名和邮箱,注意邮箱必须与 Gitee 提交邮箱一致


sudo apt install gnupg2  # Ubuntu 16.04
sudo apt install gnupg   # Ubuntu 18.04
$ gpg2 --full-gen-key     # Ubuntu 16.04 gpg 版本 < 2.1.17
$ gpg --full-generate-key # Ubuntu 18.04 gpg 版本 >= 2.1.17
请选择您要使用的密钥种类:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (仅用于签名)
   (4) RSA (仅用于签名)
您的选择? 1                                                   <- 选择密钥类型
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(3072) 3072
您所要求的密钥尺寸是 3072 位
请设定这把密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 1y                                       <- 有效期
密钥于 2020年05月04日 星期一 14时38分48秒 CST 过期
以上正确吗?(y/n) y                                            <- 确定
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
真实姓名: YOUR_NAME                                          <- 用户名
电子邮件地址: gitee@gitee.com                                 <- 邮箱,需要与 Gitee 提交邮箱保持一致
注释: Gitee GPG Key                                          <- 注释
您选定了这个用户标识:
    “YOUR_NAME (Gitee GPG Key) <gitee@gitee.com>”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
gpg: 密钥 B0A02972E266DD6D 被标记为绝对信任
gpg: revocation certificate stored as 'xxx'
公钥和私钥已经生成并经签名。
pub   rsa3072 2019-05-05 [SC] [有效至:2020-05-04]
      8086B4D21B3118A83CC16CEBB0A02972E266DD6D                 <- Key ID
uid                      likui (Gitee GPG Key) <gitee@gitee.com>
sub   rsa3072 2019-05-05 [E] [有效至:2020-05-04]
gpg --armor --export 8086B4D21B3118A83CC16CEBB0A02972E266DD6D
git config --global user.signingkey 8086B4D21B3118A83CC16CEBB0A02972E266DD6D

GPG 公钥验证状态,GPG 邮箱为当前用户已激活邮箱验证才能通过:

删除 仅移除 GPG 公钥,验证通过的 Commit 签名状态保持不变注销 移除 GPG 公钥并且将已验证的 Commit 签名状态修改为未验证git commit -S -m "YOUR COMMIT MESSAGE"
git log --show-signature # 查看签名状态
4.查看签名状态

输入 https://gitee.com/\<username>.gpg
选择用户个人资料右上角的设置页面进入安全设置 - GPG 公钥
Gitee 平台 GPG 公钥: https://gitee.com/gitee.gpg
jane@zh ~ (master !*+%) » curl https://gitee.com/gitee.gpg | gpg --import
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   919  100   919    0     0   1058      0 --:--:-- --:--:-- --:--:--  1057
gpg: key 4AEE18F83AFDEB23: public key "Gitee (web-flow commit signing.) <noreply@gitee.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
jane@zh ~ (master !*+%) » gpg --edit-key 63A71EA590E6E55E5ADED924173E9B9CA92EEF8F
gpg (GnuPG) 2.2.29; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub  rsa2048/4AEE18F83AFDEB23
     created: 2017-08-16  expires: never       usage: SC
     trust: unknown       validity: unknown
[ unknown] (1). Gitee (web-flow commit signing) <noreply@gitee.com>
gpg> trust
pub  rsa2048/4AEE18F83AFDEB23
     created: 2017-08-16  expires: never       usage: SC
     trust: unknown       validity: unknown
[ unknown] (1). Gitee (web-flow commit signing) <noreply@gitee.com>
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)
  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
pub  rsa2048/4AEE18F83AFDEB23
     created: 2017-08-16  expires: never       usage: SC
     trust: ultimate      validity: unknown
[ unknown] (1). Gitee (web-flow commit signing) <noreply@gitee.com>
Please note that the shown key validity is not necessarily correct
unless you restart the program.
gpg>
Good signature 表示正常commit b5fd988cafde32e01cb21662ee3452995674c3d9 (tag: v1.1, tag: v1, tag: k, tag: gpg2, tag: gpg1, tag: KK)
gpg: Signature made 一 11/15 15:07:11 2021 CST
gpg:                using RSA key 4AEE18F83AFDEB23
gpg: Good signature from "Gitee (web-flow commit signing.) <noreply@gitee.com>" [ultimate]
Author: bestjane <mr.bestjane@gmail.com>
Date:   Mon Nov 15 15:07:11 2021 +0800
    Create laravel.yml