GPG 是 GNU Privacy Guard 的简称,又名 GnuPG 是一种加密软件,它是 PGP 即 Pretty Good Privacy 的替代物,因为 PGP 不开源不免费,所以 GPG 使用还是比较广泛。通常用于软件包签名。

macOS中安装GPG

macOS可通过homebrew来安装

brew install gpg

GPG使用

生成GPG公钥和私钥

gpg --full-generate-key

根据提示选择密钥种类、长度、用户、邮箱、备注等信息。

显示和导出公钥和私钥

gpg --list-keys
gpg --list-public-keys
gpg --list-secret-keys

通过第一条命令查询后得到的结果,其中虚线上面一条是公钥文件及其保存地址,该文件是一个二进制形式存储的文件,虚线下面的内容是
pub 后是公钥的特征,包含 2048 位,指纹字符串以及生成的时间,该字符串最后十六位即长密钥 ID。其中括号中 S 表示 > Signing 即签名,E 表示 Encrypting 即加密,C 表示 Certificating 即认证。
uid 后是用户的个人信息
sub 后是子密钥特征,格式和公钥部分大致相同,包含 2048 位和生成时间。
上面看到的都是精简的内容,如果要看到完整的内容,通过如下命令

gpg --armor --export <邮箱或者指纹字符串或者长密钥 ID> //查看完整的公钥
gpg --armor --export-secret-keys <邮箱或者指纹字符串或者长密钥 ID> //查看完整的私钥

有时需要备份或者将公钥进行分享,需要导出成文件。

gpg --armor --output publickeyfile.txt --export <邮箱或者指纹字符串或者长密钥 ID> //导出公钥
gpg --armor --output privatekeyfile.txt --export-secret-keys <邮箱或者指纹字符串或者长密钥 ID> //导出私钥

证书重新导入信任证书

将证书导入别的机器,或者重装系统后恢复证书,新导入的证书显示为[ unknown ],正常情况下应该是[ ultimate ]

GNUPG有一个信任数据库存储在~/.gnupg/trustdb.gpg,可以通过--export-ownertrust选项导出这个数据库。

如果是在一个新的环境导入密钥,这个信任数据库并不存在,这也很好解决。

gpg --edit-key user@useremail.com

gpg> trust

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

最后别忘了保存更改:

gpg> save

参阅:信任等级信任值。例如unknown表示对密钥所有者信息一无所知。

https://zhuanlan.zhihu.com/p/481900853

最后修改:2024 年 02 月 29 日
如果觉得我的文章对你有用,请随意赞赏