GnuPG (GPG) — 加密与签名工具
GnuPG (GPG) 是 OpenPGP 标准的开源实现,用于加密、签名和密钥管理。本速查表覆盖从密钥生成、导入导出到文件加密解密、签名验证的完整工作流,以及密钥服务器操作和高级配置。
更新: 2026-07-17·30 条命令
概述
GnuPG(GPG)是 OpenPGP 标准的完整免费实现,用于加密和签名数据与通信。本速查表涵盖密钥管理、加密解密、签名验证。
快速开始
``bash
gpg --gen-key # 生成新的密钥对
gpg --list-keys # 列出公钥
gpg --encrypt -r user file.txt # 加密文件
``
详细用法请参阅下方命令表格。
密钥管理(18)
| 命令 | 难度 | ||
|---|---|---|---|
gpg --gen-key快速生成新的 GPG 密钥对(交互式) | 基础 | gpg --gen-key | |
gpg --full-generate-key完整生成密钥对(可指定密钥类型、长度、有效期) | 中级 | gpg --full-generate-key | |
gpg --list-keys列出所有公钥 | 基础 | gpg --list-keys | |
gpg --list-secret-keys列出所有私钥 | 基础 | gpg --list-secret-keys --keyid-format LONG | |
gpg --export导出公钥(二进制格式) | 基础 | gpg --export -o alice-pub.gpg alice@example.com | |
gpg --export --armor导出公钥为 ASCII 装甲格式 | 基础 | gpg --armor --export alice@example.com | |
gpg --import导入密钥(公钥或私钥) | 基础 | gpg --import bob-pub.asc | |
gpg --send-keys将密钥发送到密钥服务器 | 中级 | gpg --keyserver keys.openpgp.org --send-keys ABCD1234 | |
gpg --recv-keys从密钥服务器接收密钥 | 中级 | gpg --keyserver keys.openpgp.org --recv-keys ABCD1234 | |
gpg --delete-keys删除公钥 | 中级 | gpg --delete-keys alice@example.com | |
gpg --delete-secret-keys删除私钥 | 中级 | gpg --delete-secret-keys alice@example.com | |
gpg --export-secret-keys导出私钥(用于备份) | 高级 | gpg --export-secret-keys --armor -o private-backup.asc alice@example.com | |
gpg --edit-key交互式编辑密钥(添加 UID、修改过期、设置信任等) | 高级 | gpg --edit-key alice@example.com | |
gpg --fingerprint显示密钥指纹 | 基础 | gpg --fingerprint alice@example.com | |
gpg --keyserver指定密钥服务器 | 中级 | gpg --keyserver hkps://keys.openpgp.org --search-keys alice@example.com | |
gpg --refresh-keys刷新所有密钥(从密钥服务器获取更新) | 中级 | gpg --refresh-keys | |
gpg --list-sigs列出密钥上的签名 | 中级 | gpg --list-sigs alice@example.com | |
gpg --search-keys在密钥服务器上搜索密钥 | 中级 | gpg --keyserver keys.openpgp.org --search-keys alice@example.com |
加密解密(6)
| 命令 | 难度 | ||
|---|---|---|---|
gpg --encrypt使用公钥加密文件 | 基础 | gpg -e -r alice@example.com secret.txt | |
gpg --decrypt解密文件 | 基础 | gpg -d secret.txt.gpg | |
gpg -c对称加密(使用密码而非公钥) | 基础 | gpg -c myfile.txt | |
gpg --armor以 ASCII 装甲格式输出(用于邮件和文本传输) | 基础 | gpg --armor -e -r bob@example.com data.txt | |
gpg -o指定输出文件 | 基础 | gpg -o decrypted.txt -d secret.txt.gpg | |
gpg -r指定接收者(使用其公钥加密) | 基础 | gpg -e -r alice@example.com -r bob@example.com data.txt |
签名验证(4)
| 命令 | 难度 | ||
|---|---|---|---|
gpg --sign签名文件(同时压缩) | 中级 | gpg -s document.txt | |
gpg --clearsign明文签名(签名和原文都是可读文本) | 中级 | gpg --clearsign announcement.txt | |
gpg --detach-sign生成独立的分离签名文件 | 中级 | gpg --detach-sign --armor file.zip | |
gpg --verify验证签名 | 基础 | gpg --verify file.zip.asc file.zip |
高级(2)
| 命令 | 难度 | ||
|---|---|---|---|
gpg --trust-model设置信任模型(always/pgp/classic/direct) | 高级 | gpg --trust-model always -e -r bob@example.com file.txt | |
gpg --gen-revoke生成撤销证书 | 中级 | gpg --gen-revoke alice@example.com |
常见问题
本速查表数据整理自各工具官方文档。最后更新: 2026-07-17。