如何获取存储库的 GPG 密钥?

通过add-apt-repository添加存储库时,将添加一个新的gpg密钥。
例如:
sudo add-apt-repository ppa:some-ppa

你将被要求按Enter键导入gpg密钥。我需要获取ppa:some-ppa的gpg密钥,而不执行add-apt-repository
在命令行中,在添加存储库之前(在执行add-apt-repository之前)是否有可能获取gpg密钥?

2你要添加哪个PPA?请具体说明。 - Terrance
@Terrance 我已经编辑了我的问题。 - GAD3R
通常情况下,您会在PPA的技术细节中找到钥匙。 例如:https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa - Terrance
@Terrance 有没有办法通过命令行获取gpg密钥? - GAD3R
你可以选择使用gpg --keyserver hkp://keyserver.ubuntu.com:80 --search <key>或者apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --search <key>两种方式进行搜索,有时候你可以通过名称找到,但最准确的方法是通过密钥(最后8位数)来查找。 - Terrance
1@Terrance能否给个"<key>"的示例呢? - secavfr
1个回答

这里有一个步骤,基本上试图复制“sudo add-apt-repository ppa:owner/name”的过程,但允许您手动完成所有步骤(包括下载GPG密钥)。
  1. 打开Launchpad上的owner/name PPA页面:https://launchpad.net/~owner/+archive/ubuntu/name

  2. 在页面上查找签名密钥的指纹。

    页面上应该有一个名为“Fingerprint:”的部分,下面会列出密钥的指纹。

  3. 将PPA密钥下载到系统中的特定目录。

    • 通过URL https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x<fingerprint> 下载密钥,其中<fingerprint>是您在第2步中找到的值。
    • 解密密钥并将其放入/etc/apt/trusted.gpg.d/owner_ubuntu_name.gpg
  4. 创建一个名为/etc/apt/sources.list.d/owner-ubuntu-name.list的文件,并添加以下内容:

    deb http://ppa.launchpad.net/owner/name/ubuntu <codename> main
    

    其中<codename>lsb_release -sc命令返回的值。

  5. 享受PPA提供的新软件吧!

示例,Safe Eyes(ppa:slgobinath/safeeyes)软件
  1. 前往https://launchpad.net/~slgobinath/+archive/ubuntu/safeeyes

  2. 截至2023年3月7日,页面显示:

    指纹:

    53A5446DABC1B038506E33F5E71C080343BB5214

  3. 运行:

    curl -S "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x53A5446DABC1B038506E33F5E71C080343BB5214" \
      | sudo gpg --batch --yes --dearmor --output "/etc/apt/trusted.gpg.d/slgobinath_ubuntu_safeeyes.gpg"
    
  4. 运行:

    echo "deb https://ppa.launchpadcontent.net/slgobinath/safeeyes/ubuntu $(lsb_release -sc) main" \
      | sudo tee /etc/apt/sources.list.d/slgobinath-ubuntu-safeeyes.list
    
  5. 运行 sudo apt update && sudo apt install safeeyes 并享受您的新软件!


在Ubuntu 22.04上,如果将密钥服务器的响应保存为/etc/apt/trusted.gpg.d/somename.asc(注意.asc扩展名),似乎可以跳过解密步骤。 - Pēteris Caune