尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Linux gpg命令超全详解|文件加密解密、密钥管理、签名验证实战教程

Linux gpg命令超全详解|文件加密解密、密钥管理、签名验证实战教程
📅 发布时间:2026/7/5 2:15:16

1. 命令简介

gpg (GNU Privacy Guard) 是一个功能强大的开源加密软件套件,完整实现了 OpenPGP 标准(RFC 4880)。它用于保护数据的隐私性、真实性和完整性,核心功能包括数字签名、数据加密与解密、密钥管理以及构建信任网络(Web of Trust)。

gpg 是经典的 PGP(Pretty Good Privacy)加密工具的免费替代品,广泛应用于软件包签名验证、安全电子邮件通信、文件加密备份及代码提交签名等场景。

2. 语法格式

gpg [选项] [命令] [文件...]

格式说明:

[选项]: 用于修改命令默认行为的标志,例如控制输出格式、启用详细模式等。

[命令]: 指定 gpg 要执行的核心操作,例如 --sign, --encrypt。大多数操作都需要明确指定命令。

[文件...]: 一个或多个输入文件。若未指定文件或使用 -,则从标准输入(stdin)读取数据。

3. 常用命令及说明

下表列出了执行核心操作的主要命令:

命令

缩写

说明

--sign

-s

创建包含原始数据和签名的二进制文件(.gpg)。

--clear-sign

-

创建 ASCII armored 明文签名文件(.asc),内容可读。

--detach-sign

-b

创建一个独立的二进制签名文件(.sig),与原始文件分离。

--encrypt

-e

使用接收者的公钥加密数据。

--symmetric

-c

仅使用对称加密算法(如AES)和密码短语加密数据。

--decrypt

-d

解密数据或验证并提取已签名的文件内容。当输入是加密或签名文件时,此为默认操作。

--verify

-

验证分离签名或明文签名文件的完整性。

--list-keys

-k

列出公钥环中的所有公钥。

--list-secret-keys

-K

列出私钥环中的所有私钥。

--import

-

从文件导入密钥到本地密钥环。

--export

-

将本地密钥导出到文件。

--generate-key

-

交互式生成一个新的密钥对。

--quick-generate-key

-

非交互式快速生成密钥对。

4. 常用选项及说明

下表列出了用于调整命令行为的常用选项:

选项

缩写

说明

--armor

-a

生成 ASCII 文本格式(Armored)的输出,而非二进制格式,便于邮件发送或网页粘贴。

--recipient

-r

指定加密数据的接收者(用户ID、邮箱或密钥ID)。可多次使用以加密给多人。

--local-user

-u

指定用于签名或解密的私钥(用户ID或密钥ID)。

--output

-o

将输出写入指定的文件,而不是标准输出(stdout)。

--verbose

-v

启用详细输出模式。可多次使用(如 -vv)以增加信息详细程度。

--quiet

-q

安静模式,减少警告和信息输出。

--batch

-

启用批处理模式,禁止所有交互式查询,适用于脚本。

--yes

-

默认对所有交互询问回答“是”。

--pinentry-mode

-

控制密码短语输入方式。例如,loopback用于脚本从管道输入密码。

5. 示例用法

5.1 密钥管理

生成密钥对:

# 交互式生成密钥对(推荐新手) gpg --full-generate-key # 快速非交互式生成一个2048位RSA密钥对,有效期为365天 gpg --batch --passphrase '' --quick-generate-key "Alice Dev " rsa2048 default 365

列出与导出密钥:

# 列出所有公钥 gpg --list-keys # 列出所有私钥 gpg --list-secret-keys # 将 Alice 的公钥以 ASCII 格式导出到文件 gpg --armor --export alice@example.com > alice_public.asc # 导入 Bob 的公钥文件 gpg --import bob_public.asc

5.2 签名与验证

# 为 package.tar.gz 创建二进制签名文件 package.tar.gz.gpg gpg --sign package.tar.gz # 为 release_notes.txt 创建 ASCII 明文签名文件 release_notes.txt.asc gpg --clear-sign release_notes.txt # 为重要文件 document.pdf 创建独立的分离签名 document.pdf.sig gpg --detach-sign document.pdf # 验证上述分离签名 gpg --verify document.pdf.sig document.pdf # 验证一个明文签名文件,并提取原始内容到 verified.txt gpg --verify document.txt.asc && gpg --decrypt document.txt.asc > verified.txt

5.3 加密与解密

# 使用 Bob 的公钥(已导入)加密 secret_message.txt 给 Bob gpg --encrypt --recipient bob@example.com secret_message.txt # 输出默认二进制文件 secret_message.txt.gpg # 使用 ASCII 格式,加密给多人(Alice和Bob) gpg --armor --encrypt -r alice@example.com -r bob@example.com secret.txt # 输出 secret.txt.asc # 仅使用密码进行对称加密(不涉及密钥对) gpg --symmetric confidential.txt # 命令会提示输入并确认密码 # 解密收到的加密文件(gpg会自动寻找对应的私钥) gpg --decrypt secret_message.txt.gpg # 或将解密内容输出到文件 gpg --decrypt -o decrypted_message.txt secret_message.txt.gpg

6. 注意事项

  • 私钥安全: 私钥是您数字身份的核心,必须妥善保管(例如使用强密码短语保护)。丢失私钥意味着无法解密以其公钥加密的文件,私钥泄露则意味着身份可能被冒用。

  • 信任链: 加密的安全性依赖于对公钥真实性的信任。请通过安全渠道验证从网上下载或收到的公钥指纹(Fingerprint),不要盲目信任未知来源的密钥。

  • 算法选择: 较旧版本的 GPG 可能默认使用不够安全的算法(如 RSA-1024, SHA1)。建议在生成密钥时明确指定更安全的算法,如 rsa4096 或 ed25519。

  • 批处理脚本: 在脚本中使用 gpg 时,务必结合 --batch、--pinentry-mode loopback 以及通过文件或环境变量安全地传递密码短语,以避免脚本挂起等待输入。

  • 输出目标: 使用 --encrypt 或 --sign 等命令时,默认会生成新文件(原文件名加 .gpg 等后缀)。使用 -o 选项可以明确指定输出文件名和位置。

获取更多Linux学习资料请关注“阿成学长工具包”,对话框中输入2647获取

相关新闻

  • Go 调度器 GMP 模型的完整解析:从 goroutine 创建到抢占调度的全链路
  • 第【54期】--基于强化学习的NOMA通信系统资源动态调度算法研究--matlab完整代码
  • 【机器人 / 强化学习】SERL:让真机强化学习从“难用”走向“可复现”的强化学习框架 ----(4)算法篇(DrQ vs VICE)

最新新闻

  • 2025-2026工业纯水机主流品牌资质服务多维对比指南
  • 智商平平”学软件
  • 三轴运动跟踪系统设计与IMU传感器应用实践
  • 商品条码查询API实战:免费接口申请到代码集成全攻略
  • 低压密集型母线槽核心选材标准解析,16 年生产工厂实操经验总结
  • 3 个 Skills + 1 个记忆层,打造能成长的 Agent

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号