GPG 在 CentOS 中的核心概念与命令详解
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 传输备份文件。
流程:
服务器 B 生成密钥对,导出公钥发给 A;
A 用 B 的公钥加密文件:
gpg --encrypt --recipient "serverB" backup.tar
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`
️ 三、安全建议
私钥保护:
- 私钥必须加密存储(如
gpg --export-secret-keys -a导出时设置密码)。 - 避免私钥泄露,一旦丢失无法解密历史数据。
- 私钥必须加密存储(如
密钥生命周期管理:
- 设置密钥有效期(
gpg --full-generate-key时可选)。 - 定期轮换密钥,过期密钥用
gpg --gen-revoke吊销。
- 设置密钥有效期(
公钥分发可信性:
- 通过公钥服务器(如
keys.openpgp.org)发布公钥:gpg --keyserver hkps://keys.openpgp.org --send-keys [KeyID]
- 通过公钥服务器(如
总结
GPG 在 CentOS 中是保障数据安全的核心工具,适用于 文件加密、通信保密、软件验签 等场景。通过密钥对的非对称加密机制,结合命令行高效操作,可无缝集成到自动化流程中。重点需关注 私钥安全管理 和 密钥生命周期控制,以规避安全风险。
GPG 在 CentOS 中的核心概念与命令详解的更多相关文章
- centos、linux关机与重启命令详解
Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 1 ...
- 002/区块链核心概念与原理详解(Mooc)
1.课程介绍 (一).区块链前世今生 密码朋克--神秘组织(邮件组) 2.区块链核心概念与原理 (一)比特币是数字货币 为什么叫区块链? 因为比特币系统里面的数据是一个个的区块来存储,并且通过hash ...
- centos中crontab(计时器)用法详解
关于crontab: crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该 ...
- linux中docker容器安装vi命令详解
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...
- Eclipse中 Run as --->Maven build 命令详解
Maven Build Goals: clean 清除编译,compile 编译,test 编译并测试,install 打包并发送到本地仓库,package 只是打成jar包,并不会发送到本地 ...
- Mycat中的核心概念
Mycat中的核心概念 Mycat中的核心概念 1.数据库中间件 Mycat 是一个开源的分布式数据库系统,但是由于真正的数据库需要存储引擎,而 Mycat 并没有 存储引擎,所以并 ...
- yum(Fedora和RedHat以及SUSE中的Shell前端软件包管理器)命令详解
yum官方网站:http://yum.baseurl.org/ Fedora对于yum的介绍:http://fedoraproject.org/wiki/Yum yum(全称为 Yellow dog ...
- Storm概念、原理详解及其应用(一)BaseStorm
本文借鉴官文,添加了一些解释和看法,其中有些理解,写的比较粗糙,有问题的地方希望大家指出.写这篇文章,是想把一些官文和资料中基础.重点拿出来,能总结出便于大家理解的话语.与大多数“wordcount” ...
- JUC中的AQS底层详细超详解
摘要:当你使用java实现一个线程同步的对象时,一定会包含一个问题:你该如何保证多个线程访问该对象时,正确地进行阻塞等待,正确地被唤醒? 本文分享自华为云社区<JUC中的AQS底层详细超详解,剖 ...
- Java中堆内存和栈内存详解2
Java中堆内存和栈内存详解 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...
随机推荐
- Data wrangling:Join,Combine,and Reshape,in Pandas
Data wrangling:Join,Combine,and Reshape,in Pandas import pandas as pd import numpy as np Hierarchica ...
- codeup之C语言11.1 + C语言11.2 + C语言11.4 + 11.7 + C语言11.8(结构体
讲真,这几道题可以不做,顶多可以注意下结构体和联合体的区别 Description 完成一个对候选人得票的统计程序.假设有3个候选人,名字分别为Li,Zhang和Fun.使用结构体存储每一个候选人的名 ...
- 洛谷 P5512 [NOIP1997 提高组] 棋盘问题 加强版
洛谷 P5512 [NOIP1997 提高组] 棋盘问题 加强版 Problem&Background 可以参考这个 Solution 首先先完成这道题的普通版本P1549 A了那一道题之后, ...
- jupyter的使用 -- 快捷键
jupyter的使用 1.快捷键的使用 插入cell:a,b 删除cell:x 执行cell:shift+enter 切换cell的模式:m,y cell执行后,在cell的左侧双击就可以回到cell ...
- 解决Vmware使用中的卡顿问题
打开首选项到内存,将其修改为图中的设置 打开优先级,设置如图 打开对应虚拟机设置,如图做两步设置 全部设置完成后,再次打开虚拟机使用发现完全不卡了!
- chatgpe脚本系列 - 分析nginx攻击日志,并自动加入防火墙黑名单
脚本内容 #!/bin/bash # 日志文件路径 LOG_FILE="/var/log/nginx/access.log" # Fail2Ban 过滤器路径 FILTER_FIL ...
- kubernetes之RBAC介绍
一.RBAC简单说明 在kubernetes中,授权有6种模式: ABAC(基于属性的访问控制) RBAC(基于角色的访问控制) Webhook Node AlwaysDeny(一直拒绝) Alway ...
- HarmonyOS 应用开发实战指南
HarmonyOS 应用开发实战指南 1. 开篇:为什么选择 HarmonyOS? 最近在开发鸿蒙应用时,发现很多开发者都在问:为什么要选择 HarmonyOS?这里分享一下我的看法: 生态优势 华为 ...
- 开发者工具箱-鸿蒙RDB数据库封装与使用实践
鸿蒙RDB数据库封装与使用实践 最近项目又要搞数据存储,鸿蒙的RDB用起来还挺啰嗦,干脆自己封装了个工具类,省得每次都写一堆重复代码.这里随手记下,万一以后自己忘了还能翻出来看看. 一.SQL基础知识 ...
- 第2周 神经网络基础题numpy运用
1.使用 Numpy 的 Python 基础知识 import math def basic_sigmoid(x): s = 1/(1+math.exp(-x)) #math.exp(x):为e的x次 ...