Ubuntu的归档签名密钥是否可以通过HTTPS在某处获得?
我正在编写一个程序,需要下载各种发行版的GPG密钥才能进行无人值守的网络安装。 为了安全地以自动方式执行此操作,我需要通过HTTPS下载密钥,这意味着“gpg –recv-keys”不是一个选项。 其他发行版(例如,Fedora)通过HTTPS在他们的网站上提供密钥(例如, https : //fedoraproject.org/static/E8E40FDE.txt ),但我无法在ubuntu.com上的任何地方找到Ubuntu密钥文件。 有谁知道我可以通过HTTPS获取它?
我建议你使用“”gpg –recv-keys“,然后apt会确认密钥
如何使用Release.gpg
Secure apt在下载Release文件时总是下载Release.gpg文件,如果它无法下载Release.gpg,或者如果签名不好,它会抱怨,并会记下Release文件指向的Packages文件,以及其中列出的所有包都来自不受信任的来源。 以下是apt-get更新期间的外观:
W:GPG错误: http ://ftp.us.debian.org测试版本:由于公钥不可用,无法validation以下签名:NO_PUBKEY 010908312D230C5F
见http://wiki.debian.org/SecureApt
和http://wiki.debian.org/SecureApt#How_to_tell_if_the_key_is_safe
这些密钥在ubuntu-keyring
包中提供 。 因此,与任何Ubuntu软件包一样,您可以从Launchpad下载它,它提供HTTPS(选择合适的版本并根据需要下载tarball或deb文件)。
碰巧,你可以让GnuPG2通过HKPS导入密钥(带有SSL的HKP),因此可以安全地--recv-keys
,但这个过程有点烦人。 要使用香港邮政局,我们需要:
- 告诉
dirmngr
使用HKPS密钥服务器 - 告诉
dirmngr
CA证书在哪里 - 通过
gpg2
而不是gpg
获取密钥 –apt-key
命令调用gpg
,而gpg
似乎不支持HKPS(无论如何,它试图执行/usr/lib/gnupg/gpgkeys_hkp
,它因协议错误而失败) - 导出密钥并使用
sudo apt-key add
导入它
香港邮政总局和dirmngr
理想情况下,我们应该使用gpgconf
为dirmngr
和gpg2
设置配置选项。 但是gpgconf
并不理解我们使用的一个选项, --hkp-cacert
用于dirmngr
。 所以我们不妨手动完成所有操作。
首先,让我们创建一个指向/etc/ssl/certs/ca-certificates.crt
的符号链接,因为dirmngr
想要一个PEM扩展:
ln -s /etc/ssl/certs/ca-certificates.crt ~/.ca-certs.pem
编辑~/.gnupg/dirmngr.conf
(必要时创建)并将以下两个选项添加到其中:
keyserver hkps://keyserver.ubuntu.com hkp-cacert ~/.ca-certs.pem
必要时杀死dirmngr:
pkill dirmngr
使用GnuPG2导入密钥
设置dirmngr选项后,这很简单:
$ gpg2 --verbose --recv-keys 0xBA6932366A755776 gpg: no running Dirmngr - starting '/usr/bin/dirmngr' gpg: waiting for the dirmngr to come up ... (5s) gpg: connection to the dirmngr established gpg: data source: https://cassava.canonical.com:443 gpg: armor header: Version: SKS 1.1.6 gpg: armor header: Comment: Hostname: keyserver.ubuntu.com gpg: pub rsa4096/6A755776 2017-07-29 Launchpad PPA for deadsnakes gpg: key 6A755776: "Launchpad PPA for deadsnakes" not changed gpg: Total number processed: 1 gpg: unchanged: 1
好极了!
添加密钥到apt
另一个简单步骤:
$ gpg2 --export 0xBA6932366A755776 | sudo apt-key add OK
或者,我们现在可以从用户密钥环中删除添加的密钥,因为它不太可能再次需要:
$ gpg2 --delete-keys 0xBA6932366A755776 gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. pub rsa4096/6A755776 2017-07-29 Launchpad PPA for deadsnakes Delete this key from the keyring? (y/N) y
这些步骤并不难实现自动化。
- 解决apt-get BADSIG GPG错误的最简单方法是什么?
- 如何修复程序包丢失的GPG公钥
- GPG ERROR NO_PUBKEY:警告:以下软件包无法通过身份validation!
- Ubuntu 12.04 GPG错误:http://archive.ubuntu.com精确发布:以下签名无效:NODATA 1 NODATA 2
- 添加了密钥,但是dget仍显示“gpg:无法检查签名:未找到公钥”
- 如何调整GPG / PGP / SSH密钥的默认密码缓存持续时间?
- 升级到Ubuntu 15.10后,GPG-Agent / Enigmail停止工作
- Ubuntu不想使用签名的deb存储库
- gpgkeys:密钥服务器上找不到密钥C927EBE00F1B0520