问题描述
我在Ubuntu 16.04中使用来自Debian多媒体的未签名存储库:
deb http://www.deb-multimedia.org jessie main
要安装deb-multimedia-keyring
,我正在运行:
apt-get update && apt-get install deb-multimedia-keyring -y
这给出了一个错误:
W: GPG error: http://www.deb-multimedia.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
E: The repository 'http://www.deb-multimedia.org jessie InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
最佳答案
您可以使用以下选项绕过一些重要的防护措施:
--allow-unauthenticated
从apt-get的手册页中:
--allow-unauthenticated
Ignore if packages can't be authenticated and don't prompt about
it. This can be useful while working with local repositories, but
is a huge security risk if data authenticity isn't ensured in
another way by the user itself. The usage of the Trusted option for
sources.list(5) entries should usually be preferred over this
global override. Configuration Item:
APT::Get::AllowUnauthenticated.
但是要更广泛地使用此选项时要谨慎一点,安全措施已经到位,可以保护您的计算机而不限制您的自由…
次佳答案
您可以在sources.list
(位于/etc/apt/sources.list
)中设置选项:
deb [trusted=yes] http://www.deb-multimedia.org jessie main
可信选项是关闭GPG检查的选项。有关详细信息,请参见man 5 sources.list
。
您可以使用vim(或您喜欢的任何一种)或任何非终端编辑器(如gedit)在终端中编辑文件。
第三种答案
另一个通用的解决方案是
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5C808C2B65558117
注意:我没有使用此存储库测试该解决方案,但是我使用Skype存储库进行了测试,并且效果很好。
针对您的情况的另一种解决方案是安装密钥
wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2012.05.05_all.deb -O deb-multimedia-keyring.deb
sudo dpkg -i multimedia-keyring_all.deb
如完整介绍Here中所述
第四种答案
如果您试图从存储库中获取软件包,在存储库中密钥被打包并包含在存储库中,而没有其他地方,那么使用dpkg下载和安装密钥/密钥包可能会很烦人,而且这样做非常困难。以易于编写和重复的方式。
如果可以从密钥服务器安装密钥(如在另一个答案中使用apt-key adv
的建议),或者可以通过https从受信任的源下载密钥并使用apt-key(例如wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -
)安装,则不建议使用以下脚本,但是如果不这样做,则不建议使用以下脚本。没有其他方法,您可以使用此方法。
echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list
sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update
## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`
apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname
## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed
apt-get update
apt-get install somepkg-from-repo
我最初把它们放在一起是因为i3在他们的sur5r存储库中是这样做的,但是后来我发现他们的密钥在keyserver.ubuntu.com列表中,因此我可以使用sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
来避免所有额外的软件包麻烦。