Merge pull request #24104 from wxy/20211211-Using-GPG-to-Encrypt-and-Decrypt-Files-on-Linux--Hands-on-for-Beginners

PUB:published/20211211 Using GPG to Encrypt and Decrypt Files on Linux -Hands-on for Beginners.md
This commit is contained in:
Xingyu.Wang 2021-12-15 14:04:48 +08:00 committed by GitHub
commit d0015ed75c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,19 +4,21 @@
[#]: collector: "lujun9972"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14082-1.html"
手把手指导:在 Linux 上使用 GPG 加解密文件
======
![](https://img.linux.net.cn/data/attachment/album/202112/15/133531wcs1iy4luihr3beg.jpg)
[GnuPG][1],俗称 GPG是一个非常通用的工具被广泛用作电子邮件、信息、文件或任何你需要安全地发送给别人的东西的加密行业标准。
学习使用 GPG 很容易,你可以在几分钟内就学会使用它。
在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你完全陌生的情况下理解它。
先阅读整个教程,然后开始自己做。
先阅读整个教程,然后开始自己做。
### GPG 是如何进行加密的?
@ -32,11 +34,11 @@ GPG 密钥的工作原理是使用两个文件,一个私钥和一个公钥。
私钥,顾名思义,是以私下的、不给任何人看的方式来存储的密钥。
另一方面,公钥是用来给其他人的,或者你希望能够解密你的文件的任何人。LCTT 译注:更多的用例是用来验证你的签名。)
另一方面,公钥是用来给其他人的,或者你希望能够解密你的文件的任何人。
这就是 GPG 的主要加密方法的作用所在。它允许你对文件进行本地加密,然后允许其他人确保他们收到的文件实际上是由你发送的。因为他们能够解密文件的唯一方法是使用你的公钥,而这只有在文件首先使用你的私钥加密的情况下才有效。
这就是 GPG 的加密方法的主要作用。它允许你对文件进行本地加密,然后允许其他人确保他们收到的文件实际上是由你发送的。因为他们能够解密文件的唯一方法是使用你的公钥,而这只有在文件首先使用你的私钥加密的情况下才有效。
**反之**,其他人可以用你的公钥对文件进行加密,而唯一能够解密的方法是用你的私钥。因此,允许其他人公开发布文件,而不用担心除了你以外的人能够阅读它们。
**反之**,其他人可以用你的公钥对文件进行加密,而唯一能够解密的方法是用你的私钥。因此,允许其他人公开发布文件,而不用担心除了你以外的人能够阅读它们。LCTT 译注:另外一个常见的用例是你用你的私钥对公开发布的文件进行签名,别人使用你的公钥通过验证你的签名而确信文件是你发布的、并没有被篡改。但本文没有涉及这个用例。)
换句话说,如果一个文件是用私钥加密的,它只能用相应的公钥解密。而如果一个文件是用公钥加密的,它只能用相应的私钥解密。
@ -102,7 +104,7 @@ gpg --encrypt --output file.gpg --recipient user@example.com file
让我们快速浏览一下该命令的内容:
首先,你指定了 `—encrypt` 选项。这只是告诉 GPG我们将对一个文件进行加密。
首先,你指定了 `—encrypt` 选项。这告诉 GPG我们将对一个文件进行加密。
接下来,你指定了 `--output file.gpg`。这可以是任何名字,不过惯例是给你要加密的文件的名称加上 `.gpg` 扩展名(所以 `message.txt` 会变成 `message.txt.gpg`)。
@ -112,7 +114,7 @@ gpg --encrypt --output file.gpg --recipient user@example.com file
工作原理是,你在这里指定的电子邮件必须与你本地系统中的公钥相联系。
通常情况下,这将是来自一个另外的人的 GPG 公钥,你要用它来加密你的文件。之后,该文件将只能用该用户的私钥进行解密。
通常情况下,这将是来自另外一个人的 GPG 公钥,你要用它来加密你的文件。之后,该文件将只能用该用户的私钥进行解密。
在这个例子中,我将使用我以前的与 `user@example.com` 关联的 GPG 密钥。因此,其逻辑是,我用 `user@example.com`_公钥_ 对文件进行加密,然后只能用 `user@example.com`_私钥_ 进行解密。
@ -172,7 +174,7 @@ gpg --decrypt --output message.txt message.txt.gpg
要给别人发送一个 GPG 密钥,你首先需要从你的**钥匙链**中导出它,它包含了你所有的公钥和私钥。
要导出一把钥匙,只需在你的钥匙链中找到钥匙的 ID然后运行以下命令用钥匙的 ID 替换 `id`,用你想保存的文件名替换 `key.gpg`
要导出一个密钥,只需在你的钥匙链中找到密钥的 ID然后运行以下命令用密钥的 ID 替换 `id`,用你想保存的文件名替换 `key.gpg`
```
gpg --output key.gpg --export id
@ -188,15 +190,15 @@ gpg --import key.gpg
![][16]
但要正常使用该钥,你需要验证该钥,以便 GPG 正确地信任它。
但要正常使用该钥,你需要验证该钥,以便 GPG 正确地信任它。
这可以通过在其他用户的系统上使用 `--edit-key` 参数来完成,然后对钥进行签名。
这可以通过在其他用户的系统上使用 `--edit-key` 参数来完成,然后对钥进行签名。
首先运行 `gpg --edit-key id`
![GPG 编辑密钥][17]
接下来,使用 `—fpr` 参数,它将显示钥的指纹。这个命令的输出应该与你自己机器上的输出进行验证,这可以通过在你的系统上运行同样的 `--edit-key` 参数来找到。
接下来,使用 `—fpr` 参数,它将显示钥的指纹。这个命令的输出应该与你自己机器上的输出进行验证,这可以通过在你的系统上运行同样的 `--edit-key` 参数来找到。
![GPG 密钥的指纹][18]
@ -204,7 +206,7 @@ gpg --import key.gpg
![签署 GPG 密钥][19]
就是这样!其他用户现在可以开始用你的公钥加密文件了,就像你之前做的那样,确保它们只有在你用你的私钥解密时才能被你读取。
就是这样!其他用户现在可以开始用你的公钥加密文件了,就像你之前做的那样,这可以确保它们只有在你用你的私钥解密时才能被你读取。
这就是使用 GPG 的所有基础知识!
@ -212,7 +214,7 @@ gpg --import key.gpg
现在你已经了解了开始使用 GPG 所需要的一切,包括为自己和他人加密文件。正如我前面提到的,这只是为了了解 GPG 的加密和解密过程是如何工作的。你刚刚获得的基本 GPG 知识在应用于真实世界的场景中时可以更上一层楼。
还需要一些帮助来弄清楚一些东西,或者一些不正常的东西?欢迎在下面的评论中留下任何内容。
还需要一些帮助来弄清楚一些东西,或者有一些不工作的东西?欢迎在下面的评论中留下任何内容。
--------------------------------------------------------------------------------