APT/PPA 系统中的密钥(recv-keys)、签名密钥和指纹的区别

use*_*159 3 package-management apt ppa deb

我们以https://launchpad.net/~ansible/+archive/ubuntu/ansible为例。如果您单击“有关此 PPA 的技术详细信息”,您会看到:

Signing key:
4096R/7BB9C367

Fingerprint:
6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367
Run Code Online (Sandbox Code Playgroud)

如果您尝试添加该软件而不添加您获得的密钥

W: GPG error: http://ppa.launchpad.net trusty Release: The following signatures couldn't
be verified because the public key is not available: NO_PUBKEY 93C4A3FD7BB9C367
Run Code Online (Sandbox Code Playgroud)

apt-key list我看到4096R/7BB9C367. 要添加我需要做的密钥apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367。而且指纹似乎没有在任何地方提到。

所有这些值之间有什么区别?

apt-key ... --recv-keys如果添加 PPA,为什么我不需要,但如果手动将行添加到 ,我需要/etc/apt/sources.list.d?PPA 如何知道93C4A3FD7BB9C367它需要使用什么,它在哪里找到它?

奖金回合:使用 PPA 与仅添加一行有什么区别/etc/apt/sources.list.d/?这个 PPA 东西“托管”在哪里,只需添加 ppa:ansible/ansible 就足以将该行添加到 sources.list.d?

sai*_*895 5

我将从你的最后一个问题开始。

ppa:ansible/ansible是指 Launchpad PPA 的特殊格式,可用于 Ubuntu 和 Ubuntu 衍生产品(至少)。在功能方面,PPA 只是一个常规的回购。但是,不能将这种确切格式添加到 中/etc/apt/sources.list,因为apt无法识别这种格式。因此,必须添加存储库的 URL。例如,对于URLppa:teamName/archiveNamehttp://ppa.launchpad.net/teamName/archiveName/ubuntu

通常,软件更新程序或终端用于添加 PPA。软件更新程序识别 PPA 语法。在终端中,apt-add-repository识别格式,通常用于添加 PPA。这也会获得用于签署回购协议的公钥。如果由于某种原因它不能,你会得到一个类似的警告,你在运行sudo apt-get update.

对于指纹,公钥的完整指纹是公钥的 40 个字符的字母数字表示。Launchpad 显示完整的 40 个字符。但是,输入或记住 40 个字符是困难的,尤其是当有多个公钥时。因此,通常会显示最后 8 或 16 个字符。apt显示指纹的最后 16 个字符,并且apt-key listgpg在幕后使用)显示最后 8个字符。gpg可以配置显示的格式。