如何在 Linux 上使用 GnuPG 进行加密

您是否曾经有过需要通过电子邮件发送给某人的密码或服务器登录信息等敏感信息,但不知道如何安全发送,以免信息落入坏人之手?

在这里,您将学习如何通过流行的 gnupg 工具安全地传输使用 PGP 加密的消息和文件。 让我们潜入水中,学习如何保护我们的通信!

安装 gnupg

如果您以前从未听说过 PGP,请查看优秀的 PGP 入门和解释,其中包含各种细节,为了简洁起见,我们不会在这里展开。 首先检查是否已经安装了gnupg。 在终端中,运行命令:

gnupg --version

如果它显示您当前正在运行的 gnupg 版本(应该是 v2+),那么您已经准备就绪,可以进入下一部分了。 否则,您可以通过运行以下命令安装 gnupg:

sudo apt-get install gnupg2

完成后,检查以确保已安装:

gnupg -- version

假设 gnupg 已正确安装,这将显示版本号。

生成 PGP 密钥

使用非对称加密,您将首先生成一个包含公钥和私钥的 PGP 密钥对。 公钥可以免费分发给您希望从中接收加密消息的任何人,而私钥则保存在安全的地方。

然后人们可以将消息加密为公钥,并发送加密消息,然后可以使用私钥对其进行解密。 要生成密钥对运行:

gpg --generate-key

这将首先询问您的姓名和电子邮件地址,这不一定是您的真实姓名和电子邮件。 但是,这是其他人在选择将消息加密给谁时会看到的内容,因此请确保其他人可以轻松识别您的身份。

接下来输入字母 确认姓名和电子邮件地址,系统将提示您输入所需的密码,可以是您想要的任何密码。 每次要解密发送给您的消息时,您都需要输入此密码。

确认密码后,它将开始生成新的 PGP 密钥对,这可能需要几分钟才能从您的计算机收集足够的熵/随机数据。 随意离开终端几分钟并做其他事情,直到您看到一条消息说您的密钥已成功生成。

导出您的公钥

现在您的密钥对已生成,您需要导出公钥以分发给其他人。 在终端中运行命令:

gpg -a --export -e '[email protected]` > mykey.asc

确保使用您在生成 PGP 密钥时提供的电子邮件地址更改“[email protected]”。 您现在将在当前目录中看到一个名为的新文件 mykey.asc. 将此文件发送给您希望能够向您发送加密消息的任何人。

导入公钥

就像您现在可以与他人共享您的公钥一样,人们也会与您共享他们的公钥。 当您收到某人的公共 PGP 密钥时,将文件保存到一个目录并从同一目录访问终端,运行:

gpg --import key.asc

这会将人的公共 PGP 密钥导入 gnupg,从而允许您开始向他们发送加密消息。 您可以随时查看 gnupg 中当前可用的所有 PGP 密钥的列表:

gpg --list-keys

您将看到一堆类似于下面的条目,每个条目对应 gnupg 中可用的每个键:

 pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29]
 8978168C4E79A08553E5789CD42A4A4EC1468CFE
 uid [ unknown] Matt Dizak <[email protected]>

您需要注意的唯一信息是条目的名称和电子邮件地址,其中说明了该密钥的所有者。 加密邮件时,您只需要收件人的电子邮件地址。

通过 PGP 加密消息

为了 example,您可能需要将一些敏感信息发送给您的网页设计师,您已经在电子邮件地址 [email protected] 下导入了谁的 PGP 密钥。 键入所需的消息并将其保存到文本文件中,例如 消息.txt. 在终端和 message.txt 所在的目录中,运行命令:

gpg -e -a -r '[email protected]' message.txt

让我们快速分解上面的命令:

  • -e 指定我们正在加密数据
  • -一种 声明我们希望以 ASCII 或纯文本格式输出
  • -r 代表收件人,因此为什么后面是我们设计师的电子邮件地址
  • 最后是我们要加密的消息文件

这很可能会要求您确认您确实希望加密到此公钥,您只需点击 同意的关键。 一个新的 消息.txt.asc 文件将被创建,如果您在文本编辑器中打开该文件,您将看到类似以下内容:

 -----BEGIN PGP MESSAGE-----
hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

这是我们消息的新生成的加密形式。 您可以将此文件附加到电子邮件中,也可以简单地将此文件的内容复制并粘贴到电子邮件的正文内容中。

然后,收件人将能够使用他们的私钥解密消息,确保在传输过程中看到此消息的任何人都无法查看纯文本版本。

加密二进制文件

上面的部分解释了如何加密文本消息,但是二进制文件呢? 它的工作原理几乎相同,并且对于 example 加密一个名为 图像.zip,在终端中运行命令:

gpg -e -r '[email protected]' images.zip

唯一的区别是删除了 -a 选项以及输出文件的名称。 然后和以前一样,如果提示确认使用公钥,只需按 同意的关键。

一个名为的新文件 图像.zip.gpg 将被创建,这是我们 zip 文件的加密版本,我们可以将其作为附件通过电子邮件发送给我们的设计师。 然后,他们可以使用他们的私钥解密 ZIP 文件。

解密消息

您还需要一种方法来解密发送给您的消息。 请记住,为了让某人向您发送加密消息,您必须首先与他们共享您的公共 PGP 密钥。 您将获得一个加密的文本块,看起来与加密消息相同,例如:

 -----BEGIN PGP MESSAGE-----
hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
 9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
 .....
 -----END PGP MESSAGE-----

Save 将此文本块复制到文件中,例如 消息.asc,并在终端中运行命令:

gpg -d message.asc > message.txt

系统将提示您输入密码,该密码与您最初生成 PGP 密钥对时提供的密码相同。 成功输入密码后,将创建一个 message.txt 文件,其中包含纯文本消息的解密版本。 这里的所有都是它的!

恭喜,您的通信现在是安全的!

通过本指南,您已经了解了通过 PGP 加密正确保护您的通信所需的一切。 您已经学习了如何生成 PGP 密钥对、导出您的公钥以与他人共享、导入他人的公钥,以及如何加密和解密消息。

下次您需要通过电子邮件发送敏感信息时,您现在可以放心,只有预期的收件人才能看到邮件的内容,从而避免不受欢迎的客人看到。 快乐加密!