🔐 ​​GPG 在 CentOS 中的核心概念与命令详解​

​GPG(GNU Privacy Guard)​​ 是遵循 OpenPGP 标准的开源加密工具,用于文件/通信的加密、解密、签名及密钥管理。其核心原理是 ​​非对称加密​​:公钥加密数据,私钥解密数据,确保传输安全性和身份真实性。


⚙️ ​​一、CentOS 安装与基础命令​

​1. 安装 GPG​

sudo yum install gnupg  # 安装GPG
gpg --version          # 验证安装及版本

​2. 密钥管理​

​命令​ ​功能​ ​示例​
​生成密钥对​ 创建公钥+私钥 gpg --gen-key(交互式设置类型/有效期)
​列出密钥​ 查看公钥/私钥 gpg --list-keys(公钥)
gpg --list-secret-keys(私钥)
​导出密钥​ 备份或共享密钥 gpg --export > pubkey.asc(公钥)
gpg --export-secret-keys -a > private.key(私钥,需加密存储)
​导入密钥​ 添加他人公钥 gpg --import pubkey.asc

​3. 加密与解密​

  • ​加密文件​​(使用接收者公钥):

    gpg --encrypt --recipient "接收者邮箱" file.txt  # 输出 file.txt.gpg
    
  • ​解密文件​​(使用自身私钥):

    gpg --decrypt file.txt.gpg > output.txt  # 需输入私钥密码
    

​4. 签名与验证​

  • ​签名文件​​(证明来源):

    gpg --sign file.txt          # 生成 file.txt.gpg
    gpg --detach-sign file.txt   # 分离签名(生成 .sig 文件)
    
  • ​验证签名​​:

    gpg --verify file.txt.sig file.txt  # 验证完整性与签名者身份
    

🛡️ ​​二、典型应用场景与示例​

​1. 敏感配置文件的保护​

​场景​​:自动化脚本需读取含数据库密码的配置文件。

​解决方案​​:

# 加密配置文件
gpg --encrypt --recipient "admin@example.com" db_config.conf

# 脚本中解密(运行时输入密码)
gpg --decrypt db_config.conf.gpg > temp.conf
mysql --defaults-file=temp.conf  # 使用临时文件操作
rm temp.conf  # 立即删除明文

​2. 跨服务器安全传输数据​

​场景​​:从服务器 A 向服务器 B 传输备份文件。

​流程​​:

  1. 服务器 B 生成密钥对,导出公钥发给 A;

  2. A 用 B 的公钥加密文件:

    gpg --encrypt --recipient "serverB" backup.tar
    
  3. B 收到 backup.tar.gpg 后解密:

    gpg --decrypt backup.tar.gpg > backup.tar
    

​3. 软件包签名验证​

​场景​​:确保下载的 RPM 包未被篡改。

​操作​​:

# 导入开发者公钥
gpg --import developer_pubkey.asc

# 验证签名
gpg --verify package.rpm.sig package.rpm  
# 输出 "Good signature" 表示验证通过

​4. 安全通信(加密邮件/消息)​

​场景​​:通过管道加密命令行消息发送给他人。

​示例​​:

echo "机密信息" | gpg --encrypt --recipient "alice@example.com" | send_to_alice
# Alice 解密:`gpg --decrypt`

⚠️ ​​三、安全建议​

  1. ​私钥保护​​:

    • 私钥必须加密存储(如 gpg --export-secret-keys -a 导出时设置密码)。
    • 避免私钥泄露,一旦丢失无法解密历史数据。
  2. ​密钥生命周期管理​​:

    • 设置密钥有效期(gpg --full-generate-key 时可选)。
    • 定期轮换密钥,过期密钥用 gpg --gen-revoke 吊销。
  3. ​公钥分发可信性​​:

    • 通过公钥服务器(如 keys.openpgp.org)发布公钥:
      gpg --keyserver hkps://keys.openpgp.org --send-keys [KeyID]
      

💎 ​​总结​

GPG 在 CentOS 中是保障数据安全的核心工具,适用于 ​​文件加密、通信保密、软件验签​​ 等场景。通过密钥对的非对称加密机制,结合命令行高效操作,可无缝集成到自动化流程中。重点需关注 ​​私钥安全管理​​ 和 ​​密钥生命周期控制​​,以规避安全风险。

posted on 2025-07-25 14:27  LeeHang  阅读(133)  评论(0)    收藏  举报