如何创建PGP密钥?

我该如何生成一个PGP密钥?我想用它来签名PPA上传等操作。

3个回答

生成PGP密钥

这里是一种使用图形界面的方法来生成新的PGP密钥。

  1. 打开密码和密钥(海马)应用程序

    将出现以下屏幕。

    密码和密钥截图

  2. 要么在全局菜单中选择文件新建,要么按下Ctrl + N

  3. 创建新...窗口中选择PGP密钥并点击继续

    创建新...截图

  4. 输入您的全名和电子邮件地址,评论是可选的

    新PGP密钥截图

  5. 输入一个您能记住的强密码

    新PGP密钥的密码截图

  6. 等待生成密钥对话框完成(可能需要一些时间)

  7. 完成!

你可以在“密码和密钥”应用程序的“我的个人密钥”选项卡中找到你的密钥。

My Personal Keys screenshot

将您的密钥上传到Launchpad

将您的密钥上传到Launchpad只需点几下。

  1. 前往Launchpad.net并登录

  2. 在个人资料页面,点击黄色编辑按钮(一个带有灰色铅笔图标的圆形按钮),位于“OpenPGP keys”旁边

    注意:该页面的URL看起来像这样:https://launchpad.net/~yourusername

    OpenPGP keys on LP

  3. 打开应用程序Passwords and Keys (Seahorse)

  4. 导航到My Personal Keys选项卡

  5. 选择您的密钥,然后在全局菜单中转到RemoteSync and Publish Keys

  6. 点击Sync

    enter image description here

    注意:如果未选择同步服务器,则Sync按钮可能会变灰。在这种情况下:

    • 点击Key Servers按钮

      enter image description here

    • Publish keys to列表中选择hkp://keyserver.ubuntu.com:XXXXX密钥服务器,然后点击关闭

      enter image description here

  7. 双击My Personal Keys选项卡上的PGP密钥列表中的密钥

  8. 在刚出现的密钥窗口中,导航到Details选项卡,用鼠标选择Fingerprint,然后按下Ctrl + C

    enter image description here

  9. 将刚复制的指纹粘贴到Launchpad上的Change your OpenPGP keys页面的Fingerprint文本框中,然后点击Import Key

    enter image description here

  10. 完成!


我可以补充一点,如果没有输入密码,系统会出错,并给出一个几乎无用的错误提示。 - nanofarad
8在第9步,Ubuntu服务器知道您的密钥可能需要10分钟的时间。 - Nicolas Raoul
它只是以“这里有一个图形用户界面”开始。但是我在哪里可以获取这个图形用户界面,如何安装这个图形用户界面?例如:sudo apt install openpgpgui 或者我需要添加一个新的软件源吗? - Alex WLBI
@AlexWLBI 它清楚地说着:“打开密码和密钥(海马)应用程序”。 - Jakuje
导入后,我收到了一个弹出消息,说已经发送了一封带有加密密钥XXXXXXXXXXXX的电子邮件。我也收到了这封邮件。但是我该如何使用提供的密钥XXXXXXXX解密发给我的消息呢? - sphoenix

使用gpg创建您的OpenPGP密钥

步骤1:打开终端并输入:

gpg --gen-key

第二步:GPG现在会询问您关于要生成的密钥类型的一系列问题。按照以下步骤选择每次的默认选项。
第三步:通过输入"gpg --list-keys"来检查您的密钥是否已生成,如果成功的话。 pub 1024D/12345678 -> 这是重要的数字
第四步:Launchpad不直接存储您的密钥,因此您需要将公钥导出到一个密钥服务器,例如keyserver.ubuntu.com。
gpg --keyserver keyserver.ubuntu.com --send-keys 12345678

将步骤3中记录的pub id替换为12345678
如果成功,GPG将显示类似以下的消息:
gpg: sending key 12345678 to hkp server keyserver.ubuntu.com

使用gpg将您的密钥导入到Launchpad

步骤1:Launchpad通过指纹识别您的OpenPGP密钥。在终端中,您可以通过输入以下命令来获取您的密钥指纹:

gpg --fingerprint

GPG将显示类似的消息:
  Key fingerprint = `0464 39CD 2486 190A 2C5A  0739 0E68 04DC 16E7 CB72`

请复制以下数字指纹:0464 39CD 2486 190A 2C5A 0739 0E68 04DC 16E7 CB72

步骤2:访问您的OpenPGP

步骤3:将您在第1步中复制的指纹粘贴到指纹文本框中,然后单击导入密钥按钮。 Launchpad将使用该指纹检查Ubuntu密钥服务器是否存在您的密钥,并在成功时向您发送加密电子邮件,要求您确认密钥导入。

注意:这是来自Launchpad过程的简要说明......两个过程都需要一些时间,所以请耐心等待......


3如果你没有硬件随机数生成器,那么步骤1可能需要一些时间。请不要使用那些承诺加快此过程的方法,因为这会使你的密钥变得更脆弱。 - Lekensteyn
1如果gpg命令无法将密钥发送到密钥服务器,请尝试将"gpg --export -a IMPORTANT_NUMBER"的结果粘贴到http://keyserver.ubuntu.com/。 - igordcard
如果您不是以root身份工作,请在第一个命令前加上sudo前缀。否则,gpg将无法存储密钥,从而导致密钥创建失败。 - BurninLeo
在生成随机性的同时浏览Giphy。 - Jonathan E. Landrum
可能需要花费keyserver.ubuntu.com 10分钟来更新。要进行验证,您可以访问http://keyserver.ubuntu.com,并按使用生成密钥的名称或电子邮件进行搜索。 - wisbucky
在我的情况下,gpg send-key命令失败了。我不得不指定协议和端口,例如hkp://keyserver.ubuntu.com:80。 - eidelen

在某些系统上,如lubuntu,在那里密码和密钥(seahorse)应用程序不可用时,制作PGP密钥的一种好而简单的方法是使用gpa(GNU隐私助手)。它是gpg的图形前端。这种方法也适用于其他ubuntu衍生版。

  1. 安装gpa

sudo apt安装gpg gpa

2.从应用菜单中启动gpa

enter image description here

3. 点击“键”菜单,然后选择“新建键”。您将看到一个新窗口。

enter image description here

4. 输入您的全名,点击“下一步”,然后输入您真实的电子邮件地址,再次点击“下一步”。现在选择“稍后备份”的选项。
5. 输入一个密码短语(可以是一个单词或短语),以保护您的PGP密钥。
6. 现在您已成功创建了一个PGP密钥。实际上,它是一对密钥,包括您的私钥和公钥。
7. 要在通信中使用PGP,例如安全地交换电子邮件,您需要将您的公钥提供给对方。因此,让我们首先导出您的公钥,然后您可以将其发送给他们。要导出,请打开“gpa”并选择您的密钥。现在点击“密钥”菜单,然后选择“导出密钥”。给您的公钥取一个名称并保存它。
提示:为确保您已导出公钥,请使用文本编辑器打开它,并检查是否有一个起始行。
`-----BEGIN PGP PUBLIC KEY BLOCK-----`