我只有一份OpenPGP密钥的公共指纹,不知道密钥ID或其他任何信息。
我如何获取对应的公共密钥?是否有在线服务可以帮助我完成这个任务?
我只有一份OpenPGP密钥的公共指纹,不知道密钥ID或其他任何信息。
我如何获取对应的公共密钥?是否有在线服务可以帮助我完成这个任务?
每个OpenPGP密钥都有一个指纹,主要是从其公钥数据包中计算出来的,该数据包还包含了创建时间。该计算方法在RFC 4880,OpenPGP,12.2.密钥ID和指纹 中定义。
有短密钥ID和长密钥ID,它们分别类似于指纹的低32位和64位。例如,查看我的OpenPGP密钥的ID:
fingerprint: 0D69 E11F 12BD BA07 7B37 26AB 4E1F 799A A4FF 2279
long id: 4E1F 799A A4FF 2279
short id: A4FF 2279
有一堆密钥服务器用于分发密钥--它们彼此通信,可以选择任何一个。GnuPG的选项--keyserver hkp://pool.sks-keyservers.net
(通常在其配置文件~/.gnupg/gpg.conf
中设置Linux/UNIX系统,Windows上的另一个路径)使用一个池,每次使用时将选择一个随机的密钥服务器。
您可以使用任何这些短或长ID或完整指纹,使用GnuPG中的--recv-keys
命令获取密钥,而指纹是最具体的(并且与短密钥ID发生冲突的机会最高)。
如果不存在冲突的密钥,则以下语句将获取相同的密钥:
gpg --recv-keys 0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
gpg --recv-keys 4E1F799AA4FF2279
gpg --recv-keys A4FF2279
0x
以表示对密钥ID的搜索(GnuPG命令行界面会自动为您执行此操作)。