¶1.1 创建自己的 GPG 密钥
执行一下命令选择加密算法,并完善相关信息。
步骤简介
- 选择加密算法 (RSA 签名)
- 设置密钥长度 (4096)
- 设置密钥有效期 (1y),这是确保安全的最后防线
- 设置用户姓名、邮箱、注释(最好不要用常用邮箱,避免垃圾邮件骚扰)
¶1.1.1 运行 gpg 开始生成密钥
1 | gpg --full-generate-key |
输出如下,这里选择 4
1 | gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc. |
这里我们生成的是主密钥,只负责分发子密钥,因此只需要具有签名功能即可
这里我选择 4. RSA,有如下几个原因
- RSA 久经验证,是行业标准。
- 相关研究认为更长的 RSA,参考此论文: A RIDDLE WRAPPED IN AN ENIGMA。
- RSA 在各个平台上都有很好的支持。
¶1.1.2 设置密钥长度
现在计算机性能都不差,可以选择 4096 位的密钥长度,这样可以更好的保护你的密钥。
1 | RSA keys may be between 1024 and 4096 bits long. |
¶1.1.3 设置过期时常
这里非常推荐设置一个过期时长,避免密钥被盗用,一般设置为 1 年。
这里我们输入
1y
,表示 1 年后过期。
如果有更高的安全需求,可以设置更短的过期时间。
即将过期的时候,可以通过gpg --edit-key <key-id>
命令来延长密钥的有效期。
1 | Requested keysize is 4096 bits |
¶1.1.4 接下来输入身份信息
从略
¶1.1.5 为主密钥设定密码
这一步应该设定一个强度高的密码。
1 | lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk |
¶1.1.6 完成创建
主密钥成就解锁
恭喜你,走到这一步已经获得了一个主密钥。
1 | 生成一个用于此用途的子密钥。 |
¶1.2 签发子密钥
¶1.2.1 首先进入 gpg 的交互模式
1 | gpg --edit-key tqcq |
¶1.2.2 添加子密钥
1 | # 这里的 gpg> 是 gpg 的交互模式提示符,不需要输入 |
¶1.2.3 选择子密钥类型
这里选择 10 即可,ECC 兼顾速度和安全性
1 | Please select what kind of key you want: |
¶1.2.4 选择子密钥算法
注意
NIST、Brainpool、secp256k1 具有一些安全隐患,不推荐使用。
1 | Please select which elliptic curve you want: |
设定过期时间即可生成子密钥
¶1.3 设置 git 签名
¶1.3.1 本地 git 签名设置
这里我们用子密钥来签名
1 | ## 查看子密钥的 keyid |
¶1.3.2 Github 公钥设置
首先导出你的公钥,用于验证签名
这里 --armor 导出公钥为 ASCII 格式
1 | gpg --armor --export <sub-key-id> |
- 点击这里添加你的 Github 公钥: https://github.com/settings/gpg/new
添加完成后,你的提交就会被标记为 Verified
。
¶1.4 常用 GPG 命令
列出所有密钥: gpg --list-keys
¶1.5 参考资料
您正在使用不支持或禁用了 JavaScript 的浏览器访问我们的网站。
请考虑启用 JavaScript 以获得更好的浏览体验。
要访问真正的网站 "uocat.com",请手动复制以下网址并在您喜欢的浏览器中打开:
https://uocat.com