gpg 密钥生成
生成私钥/公钥对
# version >= 2.1.17
gpg --full-generate-key
# version < 2.1.17
gpg --default-new-key-algo rsa4096 --gen-key
选择哪种算法
# 默认选择第一种, RSA and RSA
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(14) Existing key from card
选择算法长度
# 4096
Your selection?
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
指定密钥的有效期
# 默认 0,长期有效
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
确认是否正确
# y,确认
Key does not expire at all
Is this correct? (y/N) y
输入相关信息
输入您的真实姓名、与此密钥关联的电子邮件地址(应与您在 Git 托管平台中使用的已验证电子邮件地址匹配)和可选注释(按 Enter 键跳过)
确认相关信息
# y,确认
You selected this USER-ID:
"Jetsung Chan (Git) <i@jetsung.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? y
证书密码
输入密码时,选择一个强密码,并输入两次确认
列出密钥
gpg --list-secret-keys --keyid-format LONG <your_email>
密钥 ID
复制以 sec 开头的 GPG 密钥 ID
导出该ID的公钥
gpg --armor --export XXX2B65B9246BXXX
在 Git 中使用 GPG 签名
# 1. 使用 Git 签名时使用的 GPG 签名:
git config --global user.signingkey 30F2B65B9246B6CA
# 2. 所有仓库在提交 commit 启用 GPG 签名:
# 启用
git config --global commit.gpgsign true
# 停用
git config --global commit.gpgsign false
或者
# 提交时使用签名
git commit -S -m "commit info"