GPG实用指南–第3部分使用公钥

在本GPG教程系列的第2部分中,您学习了如何使用公钥加密消息和使用私钥解密消息。 在第3部分中,您将学习如何向世界发布您的公钥,以便其他人可以向您发送加密消息,该消息只能用您的私钥解密。 我们还将研究如何导入和验证他人的公共密钥以及管理您的密钥环。

在公共密钥服务器上发布您的公共密钥

请记住,您永远不要发布您的私钥,而应该发布您的公钥。 世界各地有数百个公共密钥服务器。 Ubuntu有自己的。 麻省理工学院有一个。 使用以下命令在密钥服务器上发布密钥。

gpg --send-key <key-id>

它将把您的公钥发布到默认的密钥服务器 keys.gnupg.net。 您可以使用以下方法选择其他公共密钥服务器: --keyserver 选项。

gpg --keyserver hkp://keyserver.ubuntu.com --send-key <key-id>

将他人的公共密钥导入您的密钥环

密钥环包含您的公共密钥和导入的公共密钥。

从文件导入:

gpg --import <public-key-file>

从密钥服务器导入

如果您事先知道密钥ID,请使用 –recv键 从密钥服务器导入密钥的选项。

gpg --recv-keys <key-id>

使用以下命令在密钥服务器上搜索公共密钥。 用户ID是电子邮件地址。

gpg --search <user-id>

要指定特定的密钥服务器,请使用–keyserver选项,如下所示。

gpg --keyserver hkp://keyserver.ubuntu.com --search <user-id>

找到请求的公共密钥后,可以将其导入到您的密钥环中。

验证公钥

当有人给您他/她的公钥时,您如何知道公钥确实属于该人? 导入他人的公共密钥后,您应该验证密钥的真实性。

验证过程如下:

  • 您可以使用以下命令查看公钥的指纹: gpg --fingerprint <user-id>
  • 您可以通过电话,亲自或其他方式与钥匙的所有者联系,只要确保您与钥匙的真实所有者联系,并询问所有者钥匙的指纹是什么。
  • 比较两个指纹。
  • 如果两个指纹匹配,则可以确保获得正确的公共密钥,然后对密钥签名以将其认证为有效密钥。 要签名密钥,请使用命令 gpg --sign-key <key-id>

指纹是公钥的哈希。 它的长度比公钥的长度短得多,因此比较指纹很容易。 您必须拥有自己的私钥才能签名他人的公钥。

管理您的钥匙圈

列出公共密钥环中的所有密钥

gpg --list-keys

输出:

/home/matrix/.gnupg/pubring.kbx
-------------------------------
pub rsa2048/4F0BDACC 2016-02-01 [SC] [expires: 2018-01-31]
uid [ultimate] Xiao Guoan <[email protected]>
sub rsa2048/E02A4EED 2016-02-01 [E] [expires: 2018-01-31]

列出所有带签名的钥匙

gpg --list-sigs

输出:

/home/matrix/.gnupg/pubring.kbx
 -------------------------------
 pub rsa2048/4F0BDACC 2016-02-01 [SC] [expires: 2018-01-31]
 uid            [ultimate] Xiao Guoan <[email protected]>
 sig 3         4F0BDACC 2016-02-01 Xiao Guoan <[email protected]>
 sub  rsa2048/E02A4EED 2016-02-01 [E] [expires: 2018-01-31]
 sig 4       F0BDACC 2016-02-01 Xiao Guoan <[email protected]>

如您所见,密钥环文件位于 〜/ .gnupg / pubring.kbx。 您的公共密钥环文件可能是 〜/ .gnupg / pubring.gpg 如果您使用的是旧版的GPG。

删除密钥

gpg --delete-key <key-id>

额外提示:在您的私人钥匙圈中列出钥匙

gpg --list-secret-key

输出量

/home/matrix/.gnupg/pubring.kbx
 -------------------------------
 sec   rsa2048/4F0BDACC 2016-02-01 [SC] [expires: 2018-01-31]
 uid         [ultimate] Xiao Guoan <[email protected]>
 ssb  rsa2048/E02A4EED 2016-02-01 [E] [expires: 2018-01-31]

在这一部分中,您学习了如何发布密钥,导入其他人的密钥和密钥验证。 在本GPG教程系列的第4部分中,我们将研究如何使用GPG进行签名。

Sidebar