GPG - 在 Linux 上使用密钥加密和解密文件
在计算中,加密是一种流行且大多数时候被推荐的以秘密格式隐藏信息的技术。 GnuPG 是 Linux 系统上加密信息(文件)的有用工具之一。
GnuPG(也称为 GNU Privacy Guard 或简称为 GPG)是 GNU 用于加密数据和创建有助于整体信息安全的数字签名的工具.它是 OpenPGP Internet 标准的完整免费实施,提供了高级密钥管理解决方案。
GPG 有两个版本:
- gpg – 更适合服务器和嵌入式平台的独立版本。
- gpg2 – 一个用于桌面的版本,需要安装其他几个模块。
在一些流行的 Linux 发行版中,例如 Debian,gnupg2 包是一个虚拟的过渡包,它提供从 gpg2 到 gpg 的符号链接.
本指南介绍如何在 Linux 系统中使用 GPG 生成 GPG 密钥对、导出和共享公钥、加密文件以及共享和解密文件。
它展示了两方之间的信息共享:
- Kili Aaron([电子邮件保护]
- 测试管理员([电子邮件保护]
双方共享的文件称为 secret.txt,其中包含 测试管理员 想要与用户 Kili Aaron 共享的高度敏感的密码>。
您可以使用如下所示的 cat 命令查看包含密码和其他远程访问详细信息的 secret.txt 文件的内容。它存在于测试管理员的服务器上:
# cat secret.txt

在 Linux 上安装 GnuPG(GNU 隐私卫士)
要安装 GnuPG 包,请运行适用于您的 Linux 发行版的命令,如图所示。请注意,gnupg 软件包必须安装在共享数据的两个系统上。
$ sudo apt install gnupg [On Debian, Ubuntu and Mint]
$ sudo yum install gnupg [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a app-crypt/gnupg [On Gentoo Linux]
$ sudo apk add gnupg [On Alpine Linux]
$ sudo pacman -S gnupg [On Arch Linux]
$ sudo zypper install gnupg [On OpenSUSE]
在 Linux 中生成新的 GPG 密钥对
要生成新的密钥对(公钥和私钥),请在两个系统上运行带有 --full-generate-key
标志的 gpg 命令,然后按照提示定义类型密钥的长度、密钥的大小、密钥的有效期、用于识别密钥的用户 ID 以及密钥的安全密码短语,如下面的屏幕截图所示。
$ gpg --full-generate-key

在 Linux 中列出 GPG 密钥对
要列出您刚刚创建的公共 GPG 密钥以及其他现有密钥,请运行带有 --list-public-keys
标志的 gpg 命令。要执行长列表,请添加 --keyid-format=long
标志。
$ gpg --list-public-keys
OR
$ gpg --list-public-keys --keyid-format=long

要列出您刚刚创建的秘密 GPG 密钥以及其他现有密钥,请使用 --list-secret-keys
运行 gpg 命令旗帜。要执行长列表,请添加 --keyid-format=long
标志。
$ gpg --list-secret-keys
OR
$ gpg --list-secret-keys --keyid-format=long

在 Linux 中使用 GPG 导出密钥
一旦双方都生成了 GPG 密钥对,双方就可以将他们的公钥导出到一个文件中,并通过电子邮件或其他方式共享。
--------- On Kili Aaron Server ---------
$ gpg --list-public-keys
$ gpg --export -o aaronsec.key 15B4814FB0F21208FB5076E7A937C15009BAC996
--------- On Test Admin Server ---------
# gpg --list-public-keys
# gpg --export -o tadminsec.key BC39679E5FF48D4A6AEF6F3437211F0B4D6D8A61

在 Linux 中使用 GPG 导入密钥
接下来,通过电子邮件或其他安全方式(例如使用 scp 命令)交换公钥,如下所示:
$ scp aaronsec.key :/root/
$ scp :/root/tadminsec.key ./

接下来,通过添加 --import
标志将对端的公钥导入到本地系统公钥环中,如图所示。
# gpg --import aaronsec.key
# gpg --import tadminsec.key

要检查导入的公钥是否存在于本地系统密钥环中,请列出可用的公钥,如图所示。
# gpg --list-public-keys

在 Linux 中使用 GPG 加密文件
现在让我们看看如何使用 gpg 密钥加密秘密文件。对于本节,我们将在测试管理员 的服务器上运行命令。
要使用刚刚创建的 GPG 密钥对加密纯文本文件,请运行以下命令。 -e
或 --encrypt
标志启用加密,而 -r
或 --recipient
标志用于指定收件人 ID,secret.txt 为要加密的纯文本文件。
以下命令使用收件人[email 的公钥加密文件 secret.txt:
#gpg -e -r secret.txt
OR
# gpg --encrypt --recipient secret.txt
如果前面的命令运行成功,将在当前目录下生成一个新文件(原文件名以.gpg
结尾):
$ ls secret.txt.gpg

要将加密信息存储在不同的文件中,请使用 -o
或 --output
选项后跟文件名。在此示例中,首选文件名是 node_configs:
# gpg -e -r -o node_configs secret.txt
OR
# gpg --encrypt --recipient --output node_configs secret.txt
现在通过电子邮件或其他安全方式与您的合作伙伴共享加密文件。
在 Linux 中使用 GPG 解密文件
要解密使用 gpg 加密的文件,请添加 -d
或 --decrypt
标志并指定加密的文件名。默认情况下,解密后的信息将显示在标准输出中。您可以使用 -o
标志将其存储在文件中,如图所示。
$ gpg -d -o secrets.txt secrets.txt.gpg
$ ls secrets.txt

您可能还喜欢:
- 10 个最佳 Linux 文件和磁盘加密工具
- 5 个最好的 Linux 数据加密软件和应用
- 如何在 Linux 中加密和解密文件和目录
有关详细信息,请参阅所示的 gpg/gpg2 手册页。
$ man gpg
OR
$ man gpg2
这就是本指南的范围。 GPG是Linux中常用的信息或文件加解密工具。如果您对本指南有任何意见要分享,请使用下面的反馈表。