OpenPGP 用户 ID
OpenPGP 中的用户 ID 用于将密钥连接到名称和电子邮件地址等实体。这些用于搜索密钥服务器上的密钥,并将它们与用户/电子邮件地址匹配。
请注意,密钥服务器不会检查用户 ID ,请务必自行验证!
OpenPGP 密钥 ID
OpenPGP 密钥 ID(和指纹)用于在执行请求和发送密钥等多项操作或验证所有权时引用密钥。例如,您可以在单独的、受信任的通道上与密钥的所有者交换指纹,以确保密钥确实属于声称拥有该密钥的人。
OpenPGP (v4) 密钥 ID 是根据公钥和密钥创建时间戳计算的标识符。根据这些,计算哈希和。十六进制编码的版本称为密钥的指纹 。最后(低位)16个字符称为长键ID,如果只取最后8个字符,则为短键ID。我自己的公钥的一个例子:
fingerprint: 0D69 E11F 12BD BA07 7B37 26AB 4E1F 799A A4FF 2279
long id: 4E1F 799A A4FF 2279
short id: A4FF 2279
在密钥大小之后的行中引用了主公钥的 ID pub
,在您的情况下,短密钥 ID 为CB3AF6E6
:
pub 4096R/CB3AF6E6 2015-12-24 [expires: 2016-12-23]
请注意,八字节短密钥 ID 无法提供足够大的值空间,并且很容易通过冲突攻击生成重复密钥。至少使用长密钥 ID而不是短密钥 ID ,并且当软件处理密钥时,始终参考整个指纹。
有关如何导出哈希和的更多详细信息,请参阅RFC 4880、OpenPGP、12.2。密钥 ID 和指纹,这也解释了已弃用的 OpenPGP v3 密钥的差异。
从密钥服务器发送和接收密钥
要从密钥服务器发送或接收密钥,您必须使用完整的密钥 ID 或指纹。GnuPG在这里不接受用户 ID。来自man gpg
:
--send-keys key IDs
Similar to --export but sends the keys to a keyserver. Fingerprints may be
used instead of key IDs. [...]
--recv-keys key IDs
Import the keys with the given key IDs from a keyserver. [...]
如果您想首先搜索用户 ID(或其中的一部分),请使用gpg --search-keys
. 这将首先查询密钥服务器的名称,并提供某种助手,询问您之后要获取哪些密钥(因此,它将自动--recv-keys
为选定的密钥运行)。
--search-keys names
Search the keyserver for the given names. Multiple names given here will be
joined together to create the search string for the keyserver. [...]