GPG 使用指北
GPG 的使用指北
GPG(GnuPG)是开源软件组织 Gnu 推出的加密套件
PC:Windows 11
GUI 软件
GPG 在 win 的实现是 GPG4win 包含多个软件
- 一个 GpgOL-web,用于邮件加密等
- 一个 Kleopatra 用于管理密钥及文件/信息的加密
- 一个修改版本的 Okular,用于直接浏览 Gpg 加密的文档
- pinentry 用于输入密钥密码
- 以及命令行里的其他软件
需安装完成后,可以在 Kleopatra 软件中导入 GPG 密钥,并对文件和消息进行加密

对于邮件用途,实测 Office 365 中的 Outlook classic 无法使用非 UTF-8 的编码格式 ,这个问题在 GnuPG 论坛里面有提到过,需要主动更改 Outlook 的发信编码
Meanwhile I have learned that we do not plan to support Shift JIS and similar encodings. You will have to use UTF-8.
更改之后,正常发信,但要是别人发来其他编码的加密邮件,整个又会寄掉

而对于新版本的 Outlook,目前我是始终没有配对成功,不知道哪里有问题。
Windows 端的雷鸟(thunderbird)对比起来,界面清爽的多,Gpg 支持也到位的
但我还是回去吃微软的()了


命令行 :PowerShell 7
Git 签名方面,Kleopatra 导入的密钥对于命令行来说就是没用的。使用命令检查后会发现导入的密钥根本没有,需要自行导入,这方面不仅是 Win,Mac 上也是一样的
值得说的是,对于 Mac 还是 Termux(android) 还是 Linux,亦或者 WSL,命令都是一样的
> gpg --import 密/钥/地/址.asc
> gpg --list-keys --keyid-format=long
[keyboxd]
---------
pub ed25519/7F339C0FA2B7C429 2026-03-19 [SC]
B34B7066319D2FBF7C7FE7E57F339C0FA2B7C429
uid [ultimate] FrankChen (陈皮檀香) <frankchencjc@outlook.com> # 实际上,“陈皮檀香” 四个字在 powershell 7 配 win terminal 里面是乱码的
sub cv25519/E422CC8BF148980D 2026-03-19 [E]
2B834674B7B4253D8A0356C3E422CC8BF148980D
随后,为 Git 添加个人密钥,对我我来说,是
git config --global user.signingkey 7F339C0FA2B7C429
然后要把自己的公钥导出
> gpg --armor --export 7F339C0FA2B7C429
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEabwVMhYJKwYBBAHaRw8BAQdAjhSztyvOmTBuDnHN1WU2EZyI9pbUH5IYLkRV
xfo6iDS0M0ZyYW5rQ2hlbiAo6ZmI55qu5qqA6aaZKSA8ZnJhbmtjaGVuY2pjQG91
dGxvb2suY29tPoivBBMWCgBXFiEEs0twZjGdL798f+flfzOcD6K3xCkFAmm8FTIb
FIAAAAAABAAObWFudTIsMi41KzEuMTEsMywyAhsDBQsJCAcCAiICBhUKCQgLAgQW
AgMBAh4HAheAAAoJEH8znA+it8QpCcoA/3tkZXAEAOKo4QxANxPmgHMu6FWmaSsd
LbZl10GaTZf/AP921fUsfuo8FmJa0EqFn0BYsjDMQcQZE+jPXDldqCbjBLg4BGm8
FTISCisGAQQBl1UBBQEBB0BlETjNnj48TFkuUwkZLBTX1pXB9w6X1/gZsBzIMn5s
EwMBCAeIlAQYFgoAPBYhBLNLcGYxnS+/fH/n5X8znA+it8QpBQJpvBUyGxSAAAAA
AAQADm1hbnUyLDIuNSsxLjExLDMsMgIbDAAKCRB/M5wPorfEKesRAQD7TW8IsqRd
SWEO/iHNmo0d0h/kwILN8yvuJcJnAfZ86wEA14N6CknC9moI2Mip7+aeSaSWAd60
das+Wz55KvjtBwc=
=QhVz
-----END PGP PUBLIC KEY BLOCK-----
上传到 GitHub,点那个 New GPG key 然后从 BEGIN 那行到 END 那行复制粘贴就好

之后想要签名 commit,使用 commit -S,如果一切不出意外,你应该能看到 pinentry 工作(记住这个 pinentry,后面要烤(不是)),输入密钥的密码,然后等 Git 自己 commit

push 到 GitHub 之后,应该可以看到小绿标了

Android:Termux
待坑
Mac:MacOS-26.4-Tahoe
先骂开先 ==!!!液态玻璃丑的 P 爆!!!==
刚好赶上了MacOS 推出“史诗级更新”的 OS 26 没几个月,我买了一台二手 MacBookAir 2681
搭载 M2 8G统一内存 SSD 256G
很拉,但是我自己写点小项目是够够的,日常用起来挺👌的,就是 Edge 用来看视频会卡
可 Safari 不卡啊 😙
GUI 软件
Mac 上的 GUI 软件挺简单的, 和安装通常软件一样, GPG Suite 有时候也叫 GPGtools,下载镜像,然后暴风拖入 ~/Application
确认一下启动,然后和 Win 一样的,导入密钥,启用 AppleMail 的 GPG 加密插件。

基本就不需要特别怎么弄,GPG加密/签名邮件到手。


命令行
到了命令行,问题其实也不大,使用 brew 安装就好了
# 安装
brew install gpg
# 随后检查
gpg --version
# 输入应该像这样
gpg (GnuPG/MacGPG2) 2.4.7
libgcrypt 1.11.0
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /Users/chenpi/.gnupg
支持的算法:
公钥: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
密文: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
散列: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
压缩: 不压缩, ZIP, ZLIB, BZIP2
导入密钥与 win 完全无差别,所以不过多赘述了
随后,坑的来了 pinentry , pinentry-tty , pinentry-mac 以及 pinentry-touchid
我首先得说,pinentry 在默认安装的时候就是不一定可用的,如果发现用不了,首先把 GPG_TTY 环境变量配置起来
export GPG_TTY=$(tty)
# 意思是把GPG_TTY配置为当前TTY
然后你应该可以获得一个 TUI 的密码输入界面
当然,你会问了,这是 mac , mac 诶,应该有更舒服的方法吧
既然你诚心发问了,当然是有的,向您介绍 pinentry-mac
# 安装这玩意
brew install pinentry-mac
# 配置GPG使用pinentry-mac
echo pinentry-program $(which pinentry-mac) >> ~/.gnupg/gpg-agent.conf
# 重新载入配置
gpgconf --kill gpg-agent
# 测试能不能用
echo "test" | gpg --clearsign
然后,我就不知道为何的根本用不成了,那个时候MacOS 版本 26.4 表现为压根就不显示出任何东西
随后,就是在某个咖啡店的周日下午,我继续写我的小项目,被每次都输入闹麻了的我看到了 pinentry-touchid
然后常识安装了一下,就好了?
哦,不对,是 pinentry-mac 好了,而 pinentry-touchid 完全用不了