如何在Linux上使用GPG加密和解密文件

在笔记本电脑上的Linux终端窗口Fatmawati Achmad Zaenuri / Shutterstock.com

使用Linux保护您的隐私 GPG 命令。使用世界级的加密来保护您的秘密安全。我们将向您展示怎样使用gpg处理密钥,加密文件和解密它们。

GnuPrivacy Guard(GPG)允许您安全地加密文件,以便只有预期的收件人才能解密它们。具体而言,GPG符合OpenPGP标准。它以一个名为Pretty Good Privacy(PGP)的程序为蓝本。 PGP由Phil Zimmerman于1991年编写。

GPG依赖于每人两个加密密钥的想法。每个人都有私钥和公钥。公钥可以解密使用私钥加密的内容。

要安全地发送文件,请使用私钥和收件人的公钥对其进行加密。要解密文件,他们需要私钥和公钥。

您将从中看到必须共享公钥。您需要拥有收件人的公钥才能加密该文件,并且收件人需要您的公钥来解密它。将公钥变为公共密钥没有任何危险。事实上,正如我们将要看到的那样,有一个公共密钥服务器。私钥必须保密。如果您的公钥属于公共域,则您的私钥必须保密且安全。

设置GPG涉及的步骤多于使用GPG所涉及的步骤。值得庆幸的是,您通常只需要设置一次。

生成密钥

GPG 命令已安装在所有已检查的Linux发行版上,包括Ubuntu,Fedora和Manjaro。

您不必将GPG与电子邮件一起使用。您可以加密文件并使其可供下载,或将它们物理传递给收件人。您确实需要将电子邮件地址与您生成的密钥相关联,因此请选择要使用的电子邮件地址。

这是生成密钥的命令。该 --full-生成密钥 选项在终端窗口的交互式会话中生成密钥。系统还会提示您输入密码。确保你记住密码是什么。用标点符号连接起来的三个或四个简单单词是密码和密码短语的一个好的和健壮的模型。

gpg –full-generate-key

终端窗口中的gpg --full-generate-key

系统将要求您从菜单中选择加密类型。除非你有充分的理由不这样做,否则输入 1 然后按Enter键。

您必须为加密密钥选择一个位长度。按Enter键接受默认值。

终端窗口中的密钥生成问题

您需要指定密钥应该持续多长时间。如果您正在测试系统,请输入一个短暂的持续时间 五天。如果您要保留此密钥,请输入较长的持续时间,例如1年,持续一年。密钥将持续12个月,因此需要在一年后续订。用a确认您的选择 ÿ

您必须输入您的姓名和电子邮件地址。如果您愿意,可以添加评论。

终端窗口中的密钥生成问题

系统将提示您输入密码。每当您使用钥匙时,您都需要密码,因此请确保您知道它是什么。

gpg密码窗口

点击 输入密码后按钮。在您使用时,您将看到此窗口 GPG,所以一定要记住你的密码。

密钥生成将发生,您将返回到命令提示符。

gpg密钥生成在终端窗口中完成

生成撤销证书

如果您的私钥被其他人知道,您将需要取消旧密钥与您的身份的关联,以便您可以生成新密钥。为此,您需要撤销证书。我们现在就这样做并将它存放在安全的地方。

--output 选项后面必须是您要创建的证书的文件名。该 --gen-撤销 选项原因 GPG 生成撤销证书。您必须提供生成密钥时使用的电子邮件地址。

gpg –output~ / revocation.crt –gen-revoke [email protected]

gpg --output~ / revocation.crt --gen-revoke dave-geek@protonmail.com在终端窗口中

系统将要求您确认是否要生成证书。按 ÿ 并按Enter键。系统将询问您生成证书的原因。由于我们提前这样做,我们不确定。按 1 作为一个似是而非的猜测并按Enter键。

如果您愿意,可以输入说明。按两次Enter键以结束您的描述。

系统将要求您确认设置,然后按 ÿ 并按Enter键。

终端窗口中的gpg证书问题

证书将生成。您将看到一条消息,强调了保证此证书安全的必要性。

它提到了一个叫马洛里的人。密码学讨论长期以来一直使用Bob和Alice作为两个人进行交流。还有其他支持角色。夏娃是窃听者,马洛里是恶意攻击者。我们需要知道的是,我们必须保证证书的安全性。

至少,让我们从证书中删除除我们之外的所有权限。

chmod 600~ / revocation.crt

chmod 600~ / revocation.crt在终端窗口中

我们来看看吧 LS 查看现在的权限:

ls -l

http://cryptocouple.com/在终端窗口中

那很完美。除了文件所有者之外,没有人可以对证书做任何事情。

导入其他人的公钥

要加密另一个人可以解密的消息,我们必须拥有他们的公钥。

如果已在文件中提供了密钥,则可以使用以下命令将其导入。在此示例中,密钥文件名为“mary-geek.key”。

gpg –import mary-geek.key

gpg --import mary-geek.key ina终端窗口

密钥已导入,您将看到与该密钥关联的名称和电子邮件地址。显然,这应该与您收到的人匹配。

在终端窗口中成功导入密钥

您需要密钥的人也可能将其密钥上传到公钥服务器。这些服务器存储来自世界各地的人们的公钥。密钥服务器定期彼此同步,以便密钥可以普遍使用。

MIT公钥服务器是一个流行的密钥服务器,并且是定期同步的服务器,因此在那里搜索应该是成功的。如果有人刚刚上传了密钥,则可能需要几天时间才能显示。

--keyserver 选项后面必须跟您要搜索的密钥服务器的名称。该 --search密钥 选项后面必须跟着您要搜索的人的姓名或他们的电子邮件地址。我们将使用电子邮件地址:

gpg –keyserver pgp.mit.edu –search-keys [email protected]

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com在终端窗口中

匹配项已列出并编号。要导入一个,请键入数字,然后按Enter键。在这种情况下,只有一个匹配,所以我们输入 1 然后按Enter键。

gpg keyserver导致终端窗口

密钥已导入,我们将显示与该密钥关联的名称和电子邮件地址。

验证并签署密钥

如果您已经被您认识的人提交了公钥文件,您可以放心地说它属于该人。如果您是从公钥服务器下载的,则可能需要验证密钥是否属于其所针对的人。

- 指纹 选项原因 GPG 创建十个四个十六进制字符的短序列。您可以要求此人向您发送密钥的指纹。

然后你可以使用 - 指纹 选项生成十六进制字符的相同指纹序列并进行比较。如果匹配,则表示密钥属于该人。

gpg –fingerprint [email protected]

gpg --fingerprint mary-geek@protonmail.com在终端窗口中

生成指纹。

终端窗口中的gpg指纹

如果您对该密钥是真实的并且由其应该与之关联的人所拥有感到满意,您可以签署他们的密钥。

如果您不这样做,您仍然可以使用它来加密和解密来自该人的消息。但 GPG 每次都会问你是否愿意继续,因为钥匙是未签名的。我们将使用恰当的名字 --sign键 选项并提供此人的电子邮件地址,以便 GPG 知道要签署的密钥。

gpg –sign-key [email protected]

gpg --sign-key mary-geek@protonmail.com在终端窗口中

您将看到有关密钥和人员的信息,并将被要求验证您是否确实要签署密钥。按 ÿ 然后按Enter键对密钥进行签名。

终端窗口中的gpg密钥签名确认

怎样共享您的公钥

要将密钥作为文件共享,我们需要从中导出密钥 GPG 当地的钥匙店。要做到这一点,我们将使用 - 出口 选项,必须跟随您用于生成密钥的电子邮件地址。该 --output 选项必须后跟您希望将密钥导出到的文件的名称。该 - 盔甲 选项告诉 GPG 生成ASCII装甲输出而不是二进制文件。

gpg –output~ / dave-geek.key –armor –export [email protected]

gpg --output~ / dave-geek.key --armor --export dave-geek@protonmail.com在终端窗口中

我们可以看看密钥文件里面的内容

少dave-geek.key

终端窗口中的公钥文件少

关键是它的所有荣耀:

终端窗口中的公钥文件少

您还可以在公钥服务器上共享公钥。该 --SEND密钥 选项将密钥发送到密钥服务器。该 --keyserver 选项必须后跟公钥服务器的Web地址。要识别要发送的密钥,必须在命令行上提供密钥的指纹。请注意,四个字符集之间没有空格。

(您可以使用以下命令查看密钥的指纹 - 指纹 选项。)

gpg –send-keys –keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

终端窗口中的gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

您将收到密钥已发送的确认。

确认密钥已在终端窗口中发送到密钥服务器

加密FIles

我们终于准备加密文件并将其发送给Mary。该文件名为Raven.txt。

- 加密 选项告诉 GPG 加密文件,以及 - 标志 选项告诉它用您的详细信息签署文件。该 - 盔甲 选项告诉gpg创建一个ASCII文件。该 -r (收件人)选项后面必须是您要将文件发送到的人的电子邮件地址。

gpg –encrypt –sign –armor -r [email protected]

gpg --encrypt --sign --armor -r mary-geek@protonmail.com在终端窗口中

创建的文件名与原始文件名相同,但文件名后附加“.asc”。我们来看看吧。

少Raven.txt.asc

在终端窗口中减去Raven.txt.asc

该文件完全难以辨认,只能由拥有您的公钥和Mary私钥的人解密。拥有这两者的唯一人应该是玛丽。

终端窗口中raven.txt.asc的加密内容

我们现在可以将文件发送给Mary,确信没有其他人可以解密它。

解密文件

玛丽发了回信。它位于名为coded.asc的加密文件中。我们可以使用它轻松解密它 --decrypt 选项。我们将把输出重定向到另一个名为plain.txt的文件中。

请注意,我们不必告诉 GPG 该文件来自谁。它可以从文件的加密内容中解决。

gpg –decrypt coded.asc> plain.txt

gpg --decrypt coded.asc>在终端窗口中的plain.txt

我们来看看plain.txt文件:

less plain.txt

终端窗口中较少的plain.txt

该文件已成功解密。

终端窗口中的解密文件少

刷新你的钥匙

您可以定期询问 GPG 检查它对公钥服务器的密钥,并刷新任何已更改的密钥。您可以每隔几个月或从新联系人处收到密钥时执行此操作。

--refresh密钥 选项原因 GPG 执行检查。该 --keyserver 选项必须跟随您选择的密钥服务器。一旦公钥服务器之间的密钥同步,您选择哪一个都无关紧要。

gpg –keyserver pgp.mit.edu –refresh-keys

gpg --keyserver pgp.mit.edu  - 终端窗口中的刷新键

GPG 通过列出它检查的密钥进行响应,并让您知道是否有任何更改和更新。

gpg键在终端窗口刷新

隐私是一个热门话题

如今隐私从来都不是新闻。无论您想要保护您的信息安全和私密的原因, GPG 提供了一种简单的方法,可以对您的文件和通信应用难以置信的强加密。

还有其他方法可以使用 GPG。你可以获得一个名为Enigmail的Thunderbird插件。它挂在你的 GPG 配置允许您加密Thunderbird内部的电子邮件。

body #primary .entry-content ul#nextuplist list-style-type:none; margin-left:0px; padding-left:0px;
body #primary .entry-content ul#nextuplist li a text-decoration:none; color:#1d55a9;

请阅读下一步

  • >怎样流UFC格斗之夜155 de Randamie vs. Ladd Online
  • >怎样加快您的Internet连接速度
  • >怎样将Alexa添加到智能镜像
  • >犯罪分子怎样以您的名义订购电话(以及怎样阻止他们)
  • > Windows 7的2019年7月安全补丁包括遥测
本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。