mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
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:
commit
d0015ed75c
@ -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 知识在应用于真实世界的场景中时可以更上一层楼。
|
||||
|
||||
还需要一些帮助来弄清楚一些东西,或者一些不正常的东西?欢迎在下面的评论中留下任何内容。
|
||||
还需要一些帮助来弄清楚一些东西,或者有一些不工作的东西?欢迎在下面的评论中留下任何内容。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user