CentOS 中的 GPG(GNU Privacy Guard)是一款用于加密和签名的开源软件,广泛用于保护数据的完整性和隐私,GPG 基于 OpenPGP 标准,支持非对称加密和数字签名功能,本文将详细介绍如何在 Centos 系统中使用 GPG,包括生成密钥、导入导出密钥、加密解密文件以及删除密钥等操作。
系统环境
本文介绍的内容基于 CentOS 8.0.1905 版本,但大部分命令也适用于其他版本的 CentOS 和 RHEL 系统。

常用命令及操作
1. 生成密钥
在 CentOS 中,可以使用gpg genkey
或gpg fullgeneratekey
来生成新的 GPG 密钥对,以下是详细步骤:
- gpg genkey
执行上述命令后,会提示选择密钥类型,默认选择 (1) RSA and RSA,接下来需要指定密钥长度,建议使用 2048 位或更高,然后设置密钥的有效期限,可以选择永不过期(0),或者设置具体的天数、周数、月数或年数,输入用户标识信息,包括真实姓名、电子邮件地址和注释,以完成密钥对的生成。
2. 查看密钥
生成密钥后,可以使用以下命令查看公钥和私钥:
查看公钥:

- gpg listkeys
查看私钥:
- gpg listsecretkeys
3. 导出密钥
导出公钥:
- gpg a export newkey > newkey.asc
导出私钥:
- gpg a exportsecretkeys newkey > newkey_pirv.asc
4. 导入密钥
导入公钥或私钥:

- gpg import newkey
- gpg import file.key
5. 使用公钥加密文件
使用公钥加密文件的命令如下:
- gpg ea r newkey filename
加密后会生成一个filename.asc
的加密文件。
6. 使用私钥解密文件
使用私钥解密文件的命令如下:
- gpg o filename d filename.asc
解密时会提示输入私钥密码。
7. 删除密钥
删除私钥:
- gpg deletesecretkey newkey
删除公钥:
- gpg deletekey newkey
8. 加密文件
加密文件的命令如下:
- gpg encrypt armor r keyid file
- gpg encrypt armor r JID90JU8 abc.txt
加密后的文件默认输出为file.asc
。
9. 解密文件
解密文件的命令如下:
- gpg decrypt file
- gpg decrypt test.txt.gpg > test.txt
如果加密文件在其他服务器上,需要先将公钥导入到该服务器,再进行解密,解密时会提示输入私钥密码。
常见问题解答(FAQs)
Q1: 如何更改 GPG 密钥的长度?
A1: 在生成密钥时,可以通过指定keytype
和keylength
选项来设置密钥类型和长度,生成一个 4096 位的 RSA 密钥:
- gpg genkey keytype rsa keylength 4096
Q2: 如何更改 GPG 密钥的有效期?
A2: 在生成密钥时,可以通过指定expires
选项来设置密钥的有效期限,设置密钥有效期为一年:
- gpg genkey expires 1y