PGP密钥使用指南
生成密钥对
# 交互式生成密钥
gpg --full-generate-key
# 非交互批量模式
gpg --batch --gen-key <<EOF
%no-protection
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Your Name
Name-Email: [email protected]
Expire-Date: 2y
EOF
密钥管理
# 列出公钥
gpg --list-keys
# 导出公钥
gpg --export --armor [email protected] > public.asc
# 导出私钥(妥善保管!)
gpg --export-secret-keys --armor [email protected] > private.asc
# 导入密钥
gpg --import public.asc
加密和解密
# 加密文件
gpg --encrypt --armor --recipient [email protected] file.txt
# 解密
gpg --decrypt file.txt.asc > file.txt
# 加密并签名
gpg --encrypt --sign --armor -r [email protected] file.txt
签名和验证
# 生成分离签名
gpg --detach-sign --armor file.txt
# 验证签名
gpg --verify file.txt.asc file.txt
# 内联签名文本
gpg --clearsign message.txt
密钥服务器操作
# 上传到密钥服务器
gpg --keyserver keys.openpgp.org --send-keys KEYID
# 搜索密钥服务器
gpg --keyserver keys.openpgp.org --search-keys [email protected]
# 接收/刷新密钥
gpg --keyserver keys.openpgp.org --recv-keys KEYID
| 概念 | 说明 |
|---|---|
| 公钥 | 可公开分享,他人用于加密发给你的消息 |
| 私钥 | 保密,用于解密和签名 |
| 指纹 | 40位十六进制密钥唯一标识 |
| 信任网络 | PGP 的去中心化信任模型 |