Linux怎么解密被gpg加密的文件

大晨吖_9285

大晨吖_9285

2026-11-06

547人浏览

原创

gpg解密失败主因是密钥状态或加密方式不匹配:需确认私钥已导入、未过期、UID匹配,且区分对称加密(只需密码)与非对称加密(需对应私钥);文件名.gpg不决定加密类型,应通过file或gpg --list-packets判断。

linux怎么解密被gpg加密的文件

gpg

解密失败,八成不是命令写错了,而是密钥、权限或加密方式没对上。直接用 gpg --decrypt 能跑通的前提是:你有对应私钥、它已导入、没过期、且密码记得住。

确认私钥是否已导入并可用

解密前必须确保你的私钥在本地密钥环里,否则 gpg 根本找不到解密凭据。

  • 运行 gpg --list-secret-keys,看输出里有没有匹配加密文件所用身份(比如邮箱或姓名)的私钥条目
  • 如果空白或报错 gpg: directory '/home/xxx/.gnupg' not found,说明还没初始化密钥环,得先 gpg --gen-key 或 gpg --import private.key
  • 若私钥是别人给的(如 mykey.asc),导入时用 gpg --import mykey.asc,注意该文件必须是 ASCII-armored(含 -----BEGIN PGP PRIVATE KEY BLOCK-----)或二进制格式,不能是加密后的 .gpg 文件
  • 私钥被设了过期时间?检查输出中 [expires: ...] 字段,过期后 gpg 默认拒绝使用(可加 --ignore-valid-from 强制,但不推荐)

区分对称加密和非对称加密的解密方式

gpg --decrypt 看似万能,实则行为取决于加密时用的是哪种模式——这点最容易踩坑。

  • 如果是用 gpg -c file.txt(即 --symmetric)加密的,解密时不需要私钥,只靠密码;运行 gpg -d file.txt.gpg 即可,会提示输入对称密码
  • 如果是用 gpg -e -r "Alice" file.txt 加密的,说明用了 Alice 的公钥,那只有 Alice 的私钥能解——你得确认当前系统里装的是 Alice 的私钥,而不是你自己的
  • 混淆点:文件名带 .gpg 后缀 ≠ 一定用了非对称加密;它只是默认扩展名,-c 和 -e 都会产生这个后缀
  • 不确定加密方式?试 file encrypted.gpg:若输出含 PGP RSA 或 PGP DSA,大概率是非对称;若含 IDEA、AES、3DES 且无密钥标识,基本是对称加密

常见错误现象与绕过方法

命令执行后卡住、报错或输出乱码,别急着重装 GPG,先查这几处。

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 报错 gpg: decryption failed: No secret key:私钥缺失或 UID 不匹配。用 gpg --list-packets encrypted.gpg 2>/dev/null | grep -A2 "keyid\|issuer" 查加密时用的 keyid,再比对 gpg -K --keyid-format long 输出
  • 终端里输密码没反应、光标不动:可能是 TTY 环境下 pinentry 程序没起来。临时改用 echo "mypass" | gpg --pinentry-mode loopback --passphrase-fd 0 --decrypt encrypted.gpg(需提前配置 allow-loopback-pinentry)
  • 解密后内容是空或乱码:可能是输出被重定向到了不可写路径,或用了 -o 但目标目录不存在。优先用 gpg -d encrypted.gpg > out.txt,避免 --output 路径权限问题
  • Mac 上用 Homebrew 安装的 GPG 报 gpg: signing failed: Inappropriate ioctl for device:这是 pinentry 冲突,删掉 ~/.gnupg/gpg-agent.conf 里的 pinentry-program 行,重启 agent:gpgconf --kill gpg-agent

安全与兼容性提醒

生产环境解密,别只盯着“能不能跑通”,还得看“靠不靠得住”。

  • 老版本 GPG(如 1.x)加密的文件,GPG 2.3+ 可能默认禁用某些算法(如 CAST5、RSA-1024)。遇到 gpg: encrypted with 1024-bit RSA key + decryption failed,加 --cipher-algo AES256 --digest-algo SHA256 强制指定,或降级用 gpg1 命令(如果系统装了)
  • 私钥口令强度不够,或保存在未加密的磁盘上,解密成功也等于白忙——gpg --export-secret-keys 导出私钥前务必用 gpg --symmetric 再包一层
  • 脚本中自动解密?别硬编码密码。用 gpg --batch --passphrase-fd 0 从 stdin 读,配合 systemd 的 LoadCredential= 或 pass 工具管理凭据

实际解密动作本身很简单,难的是把密钥状态、加密上下文和环境配置对齐。很多“解不开”的问题,本质是不知道当初怎么加密的——建议每次加密后顺手记一行 gpg --list-packets file.gpg | head -n10 到 README 里。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4430

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3713

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2993

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

7390

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

7042

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

4013

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3505

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3739

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习