我正在找几个朋友来签署我的密钥。每次他们签署我的密钥时,如果他们将签名的密钥发送到密钥服务器,当我尝试使用 获取签名时gpg --refresh-keys --keyserver some.keyserver
,我的密钥不会更改,我看不到他们的签名。如果我使用,也会发生同样的事情gpg --recv-keys
。他们尝试了三个不同的服务器。但是,如果他们通过电子邮件将我的密钥发送给我,或者我在密钥服务器的 Web 界面上查找我的密钥并复制文本,然后导入它,我会在我的密钥上看到他们的签名。有谁知道为什么会发生这种情况或者我做错了什么?
答案1
您需要将他们的签名导入到您的密钥中。他们不应该将其发送到密钥服务器本身。
该过程如下所示:
- 创建 GPG 签名(您已经完成了此操作)
- 发布您的签名
gpg --send-key 12345678ABCDEF12
- 制作指纹的物理副本。将其输出打印到您的名片上,或者在一张纸上打印一堆并将其剪碎。
gpg -v --fingerprint 12345678ABCDEF12
参加密钥签名派对。与人见面,享受乐趣,并将您的物理指纹分发给人们。人们通常会要求您提供 ID,以便他们可以验证您的姓名与 GPG 密钥上的姓名确实相同。
您遇到的人将使用您提供给他们的物理指纹从密钥服务器下载您发布的密钥。他们将逐个字符检查您提供给他们的物理副本是否与服务器上的内容匹配。
如果他们满意,他们会gpg --sign
签名,然后将其导出(最好也对其进行加密)。然后他们将结果通过电子邮件发送给您。
gpg --recv-keys 12345678ABCDEF12
gpg --fingerprint 12345678ABCDEF12
gpg --sign-key 12345678ABCDEF12
gpg --armor --export 12345678ABCDEF12 | gpg --encrypt -r 12345678ABCDEF12 --armor --output 12345678ABCDEF12-signedBy-112233445566778899.asc
- 您将通过电子邮件收到签名。如果它被加密,您首先需要对其进行解密(这是您是否真正拥有签名的另一项检查),然后您将
gpg --import
他们的签名转换为您自己的密钥,并发布结果:
gpg -d 12345678ABCDEF12-signedBy-112233445566778899.asc | gpg --import
gpg --send-key 12345678ABCDEF12
答案2
当您处理与朋友交换的签名时,斯图尔特的答案是正确的。但如果您只想从其他密钥导入签名,您将遇到同样的问题。 gpg(例如 Debian 11)会删除所有非自签名。如果您需要从服务器导入/刷新密钥上的签名,请尝试使用以下命令行参数: --keyserver-options no-self-sigs-only