GPG文件加密解密超详细教程(Linux/Windows通用实操)

在日常服务器运维、私密文件传输、数据备份的过程中,直接用明文存放和传输文件,其实有着非常高的泄露风险。不管是数据库配置、账号密码文档、业务私密资料,还是个人隐私文件,一旦被抓取、泄露,都会造成不小的损失。这也是为什么很多运维老手,都会习惯性用加密工具保护重要文件。

GPG(GNU Privacy Guard)就是目前开源圈最稳定、免费且无版权限制的加密工具,完美替代商用PGP协议,全平台兼容Linux、Windows、macOS。不管是服务器日常加密备份,还是个人私密文件传输,GPG都是首选方案。

很多新手第一次用GPG都会懵,分不清公钥私钥、搞不懂加密逻辑,经常出现加密后无法解密、密钥丢失、文件损坏等问题。今天我就用最接地气的实操方式,带大家从零完整跑通一遍GPG文件加密、解密、密钥迁移和日常管理流程,看完就能直接上手实操。

先简单说下GPG的核心加密原理,弄懂这个,后续所有操作你都能举一反三。GPG用的是非对称加密模式,全程依靠一对密钥完成,分别是公钥和私钥,二者必须配对使用。公钥是可以公开分享的,任何人拿到你的公钥都能给你加密文件;但私钥是绝对私密的,仅限自己保存,只有对应的私钥能解开公钥加密的文件。简单总结就是:公钥加密、私钥解密,加密过程不可逆,安全系数极高,不用担心文件被破解。

想要使用GPG,首先要确保设备已经安装工具。绝大多数Linux系统(Ubuntu、CentOS等)都会默认预装GPG,大家可以直接打开终端,输入下方命令查看版本,判断是否可以直接使用:

gpg --version

如果终端输出版本信息,就代表可以直接使用;若提示命令不存在,根据自己的系统执行对应安装命令即可。Ubuntu、Debian系列系统安装命令:

sudo apt install gnupg -y

CentOS、RHEL系列系统安装命令:

yum install gnupg -y

如果是Windows用户,不需要敲复杂命令,直接下载官方的Gpg4win工具即可,图形化界面操作,完美兼容所有GPG加密文件,使用起来非常便捷。

安装完成后,第一步核心操作就是生成专属GPG密钥对,这是所有加解密操作的基础,没有密钥就无法进行任何加密、解密工作。终端输入下方密钥生成命令:

gpg --gen-key

之后按照终端的交互式提示一步步填写信息就行,不用复杂配置。首先填写用户名,建议用英文避免后续乱码问题;然后填写常用邮箱,这个邮箱会作为密钥的唯一标识,后续加解密、密钥迁移都会用到;备注栏可以直接回车留空;输入字母O确认信息无误后,重点来了,一定要设置一个复杂度合适的私钥保护密码,这个密码务必牢记,一旦丢失,所有加密文件永久无法解密。

确认密码后,系统会自动生成密钥,等待过程中可以多敲击键盘、移动鼠标,增加系统随机熵值,让生成的密钥安全性更高。

密钥生成完毕后,我们可以通过两条简单命令,分别查看本地的公钥和私钥,确认密钥是否正常生成、信息是否无误。查看对外公开的公钥,使用这个命令:

gpg --list-keys

查看仅本地保存、严禁外泄的私钥,使用这个命令:

gpg --list-secret-keys

输出内容中能看到自己刚刚填写的用户名、邮箱和密钥有效期,就代表密钥生成成功,可以正常使用了。

接下来进入核心的文件加密实操。GPG支持文本文件、压缩包、配置文件等几乎所有格式的文件加密,加密后会自动生成后缀为 .gpg 的加密文件,原文件会默认保留,建议加密成功后手动删除原文件,避免明文泄露。

通用加密命令格式非常固定,大家直接套用即可:

gpg -e -r 密钥标识 待加密文件

简单解释下参数,-e 代表开启加密模式,-r 是指定加密接收人,后面跟随的密钥标识,就是你创建密钥时填写的邮箱或用户名。我给大家举个实操例子,比如要加密本地的 test.txt 文件,命令如下:

gpg -e -r test@163.com test.txt

执行命令后,目录下会多出一个 test.txt.gpg 加密文件,这个文件就算被他人获取,没有对应私钥也完全无法读取内容,彻底杜绝泄露风险。如果是帮别人加密文件,只需要把后面的密钥标识换成对方的GPG邮箱即可,对方用自己的私钥就能解密。

加密后的文件,解密操作同样简单高效。拿到 .gpg 格式的加密文件后,直接通过私钥即可一键解密,无需复杂配置。基础解密命令如下:

gpg -d 加密文件名.gpg

继续用上面的文件举例,解密 test.txt.gpg 的命令:

gpg -d test.txt.gpg

执行后终端会提示输入私钥保护密码,输入创建密钥时设置的正确密码,就能自动还原出原始文件。如果担心直接解密会覆盖本地已有文件,也可以指定输出新文件,规避文件覆盖问题:

gpg -d test.txt.gpg > new_test.txt

很多朋友会遇到更换服务器、换新电脑的情况,这时候就需要迁移GPG密钥,否则旧设备加密的文件,新设备无法解密,所以密钥的导出和导入是非常实用的必备操作。

首先是导出密钥,公钥可以随意导出分享给他人,命令如下:

gpg --export -a 邮箱/用户名 > public.key

而私钥是核心机密,导出后一定要妥善备份、禁止外传,私钥导出命令:

gpg --export-secret-keys -a 邮箱/用户名 > private.key

把导出的 public.key 和 private.key 文件拷贝到新设备后,执行导入命令即可完成密钥迁移,公私钥导入命令分开执行:

# 导入公钥
gpg --import public.key

# 导入私钥
gpg --import private.key

导入私钥时需要验证私钥密码,验证通过后,新设备就可以正常加解密之前的文件了。

日常使用中,如果本地积累了很多过期、无用的GPG密钥,建议及时清理,避免密钥混淆导致加解密失败。删除密钥有固定顺序,必须先删私钥,再删公钥。

删除私钥命令:

gpg --delete-secret-keys 邮箱/用户名

删除公钥命令:

gpg --delete-keys 邮箱/用户名

最后给大家整理几个新手高频遇到的问题,帮大家避开坑、快速排错。

解密时提示密钥不匹配,大多是因为加密使用的公钥和本地私钥不对应,或是密钥导入不完整、导入了错误密钥,重新导入匹配的私钥即可解决。

生成密钥时卡住、提示熵值不足,是服务器空闲资源过少导致的,多敲击键盘、执行简单终端命令、刷新页面,就能快速完成密钥生成。

加密文件传输后打开乱码,基本是传输过程中修改了文件后缀,GPG加密文件为二进制格式,必须保留 .gpg 后缀,不要随意修改文件名。

如果不慎忘记了私钥密码,是无法破解找回的,GPG加密全程不可逆,只能重新生成密钥、重新加密文件,所以私钥和密码一定要离线备份保存。

最后分享几个GPG日常使用的安全小技巧,也是运维行业的通用规范。首先,私钥和私钥密码是核心机密,绝对不能随意传输、外泄,建议单独离线备份;其次,公钥可以放心公开分享,不用担心安全问题;日常的服务器配置、隐私文件、备份数据,尽量避免明文存储,优先用GPG加密;另外要定期清理无效过期密钥,保持本地密钥环境干净,减少加解密异常问题。遵循这些规范,就能安全、稳定地使用GPG完成文件加密解密工作。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

Linux服务器

Post 82 of 82

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress