gpg
跳转到导航
跳转到搜索
加密
gpg --encrypt --recipient 'Your Name' foo.txt
解密
gpg --output foo.txt --decrypt foo.txt.gpg
签名
生成签名文件。生成的文件会放在与 FILE 相同的路径,但是多了后缀 .sig。
gpg --detach-sign -u KEY FILE
添加 --armor 参数可以生成文本型的签名(.asc)。
使用 --sign 来将消息和签名置于同一文件。
使用 --clear-sign 来生成直接可读(不需要解密)的已签名消息。
密钥管理
生成密钥
生成私钥:
gpg --gen-key
生成公钥:
gpg --armor --output public.key --export <your email>
导入/导出
导出私钥
gpg --export-secret-keys keyname > keyfile
从服务器导入公钥
gpg --recv 8B09D5F7
信息
显示指定 key 的指纹:
gpg --fingerprint keyname
显示指定文件内的 key 的信息:
gpg --with-fingerprint xxxx.key
签名公钥
本地(不能被导出)签名他人的公钥
gpg --lsign-key keyname
问题处理
强制在终端询问密码
有时候无法访问 GUI 弹窗,可手动启动一个 gpg-agent 进程:
systemctl --user stop gpg-agent.service gpg-agent.socket
gpg-agent --daemon --pinentry-program=/usr/bin/pinentry-curses
恢复:
killall gpg-agent
systemctl --user start gpg-agent.socket
参见
外部链接
- GPG入门教程 - 阮一峰的网络日志
- Gnu PG 在 GIT 中应用 - World Under Control
- The GNU Privacy Handbook
- KeySRV.de - Verifying PGP Keyserver
- gpg pubkey ID碰撞
- 新增 OpenPGP Keyserver – What's up, LUG Servers
- GPG 与 SSH Agent 转发 · K.I.S.S
- I'm giving up on PGP
- 2021-46: GPG 增加新的 Subkey
- SKS Keyserver Network