搬瓦工 VPS GPG 加密与签名使用教程
GPG(GNU Privacy Guard)是 PGP(Pretty Good Privacy)的开源实现,提供非对称加密、数字签名和密钥管理功能。在服务器管理中,GPG 广泛用于验证软件包的完整性、加密敏感文件备份、Git 提交签名以及安全通信。本文将系统性地介绍 GPG 在搬瓦工 VPS 上的各种实用场景。
一、安装 GPG
# 大多数 Linux 系统已预装 GPG
gpg --version
# 如果未安装
# Ubuntu / Debian
apt install gnupg -y
# CentOS / RHEL
yum install gnupg2 -y
二、密钥管理
2.1 生成密钥对
# 完整的交互式生成
gpg --full-generate-key
# 快速生成(使用默认设置)
gpg --quick-generate-key "Your Name <email@example.com>" rsa4096 cert 0
# 推荐使用 Ed25519 算法(更快更安全)
gpg --quick-generate-key "Your Name <email@example.com>" ed25519 cert 0
2.2 查看和管理密钥
# 列出所有公钥
gpg --list-keys
# 列出所有私钥
gpg --list-secret-keys
# 查看密钥指纹
gpg --fingerprint email@example.com
# 导出公钥
gpg --armor --export email@example.com > public.asc
# 导出私钥(妥善保管)
gpg --armor --export-secret-keys email@example.com > private.asc
# 导入密钥
gpg --import public.asc
gpg --import private.asc
# 删除公钥
gpg --delete-key KEY_ID
# 删除私钥
gpg --delete-secret-key KEY_ID
三、文件加密与解密
3.1 非对称加密(使用公钥加密)
# 加密文件(指定接收者的公钥)
gpg --encrypt --recipient email@example.com sensitive-data.txt
# 生成 sensitive-data.txt.gpg
# 解密文件(需要对应的私钥)
gpg --decrypt sensitive-data.txt.gpg > sensitive-data.txt
# 加密并生成 ASCII 格式输出
gpg --armor --encrypt --recipient email@example.com sensitive-data.txt
3.2 对称加密(使用密码加密)
# 使用密码加密文件
gpg --symmetric --cipher-algo AES256 backup.tar.gz
# 会提示输入密码
# 解密
gpg --decrypt backup.tar.gz.gpg > backup.tar.gz
3.3 加密备份实战
# 加密数据库备份
mysqldump -u root database_name | gpg --symmetric --cipher-algo AES256 -o /backup/db-$(date +%Y%m%d).sql.gpg
# 解密并恢复
gpg --decrypt /backup/db-20260328.sql.gpg | mysql -u root database_name
四、数字签名与验证
4.1 签名文件
# 创建分离式签名(原文件 + .sig 签名文件)
gpg --detach-sign release.tar.gz
# 创建 ASCII 格式的分离式签名
gpg --armor --detach-sign release.tar.gz
# 创建嵌入式签名
gpg --sign document.txt
# 创建明文签名(签名附在文本末尾)
gpg --clearsign document.txt
4.2 验证签名
# 验证分离式签名
gpg --verify release.tar.gz.sig release.tar.gz
# 验证嵌入式签名
gpg --verify document.txt.gpg
# 验证软件包签名
wget https://example.com/software-1.0.tar.gz
wget https://example.com/software-1.0.tar.gz.asc
gpg --verify software-1.0.tar.gz.asc software-1.0.tar.gz
五、密钥服务器
# 上传公钥到密钥服务器
gpg --keyserver hkps://keys.openpgp.org --send-keys YOUR_KEY_ID
# 从密钥服务器搜索公钥
gpg --keyserver hkps://keys.openpgp.org --search-keys email@example.com
# 从密钥服务器下载公钥
gpg --keyserver hkps://keys.openpgp.org --recv-keys KEY_ID
# 刷新本地密钥
gpg --keyserver hkps://keys.openpgp.org --refresh-keys
六、Git 签名集成
# 配置 Git 使用 GPG 签名
git config --global user.signingkey YOUR_KEY_ID
git config --global commit.gpgsign true
# 签名提交
git commit -S -m "Signed commit message"
# 签名标签
git tag -s v1.0.0 -m "Signed release v1.0.0"
# 验证提交签名
git log --show-signature
# 验证标签签名
git tag -v v1.0.0
七、密钥安全建议
- 备份私钥:将私钥的备份存储在安全的离线介质上。
- 使用子密钥:为日常使用生成子密钥,主密钥离线保存。
- 设置密钥过期时间:定期更新密钥,避免永久有效的密钥被滥用。
- 保护密码短语:使用强密码保护私钥。
- 吊销证书:提前生成吊销证书以备不时之需。
# 生成吊销证书
gpg --gen-revoke --armor --output revoke.asc YOUR_KEY_ID
总结
GPG 是 Linux 系统上最基础的加密工具,掌握其用法对服务器安全管理至关重要。对于更现代化的文件加密需求,可以参考 Age 加密工具;对于配置文件中的密钥加密管理,推荐使用 SOPS。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。