从未签名的存储库强制更新


63

我在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.

Answers:


40

您可以使用以下选项绕过一些重要的防护措施

--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.

但是要更广泛地使用此选项时要谨慎一点,安全措施已经到位,可以保护您的计算机而不限制您的自由...


1
我使用Raspbian stretch并获得了E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.我想从python 3.5升级的选项。t 3.6。
Timo

2
告诉我,执行时“此选项不能与其他选项一起解释”sudo apt-get update --allow-unauthenticated
Xerus

26
注意:自2018
Jay Taylor

@JayTaylor:我刚刚为18.04打开了一个新的虚拟机,并且这里的命令功能非常好。此处的Pastebin:pastebin.com/ygLTnP1C
andrew.46 '18

2
有趣; 也许是在我观察到的错误背后,我尝试过的机器上还有其他不同之处。无论如何,将[trusted=yes]字段添加到sources.list确实可行。感谢您的勤奋@ andrew.46 :)
杰伊·泰勒

61

您可以在sources.list(位于/etc/apt/sources.list)中设置选项:

deb [trusted=yes] http://www.deb-multimedia.org jessie main

可信选项是关闭GPG检查的选项。有关man 5 sources.list详细信息,请参见。

您可以使用vim(或您喜欢的任何一种)或任何非终端编辑器(如gedit)在终端中编辑文件。


我们如何sources.list从终端访问?
fuzzi

1
它位于中/etc/apt/sources.list。您可以在终端中使用vim(或您喜欢的任何一种)或任何非终端编辑器(如gedit)进行编辑。
Prathu Baronia

8

另一个通用的解决方案是

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

通过在全步行描述这里


3

如果您试图从存储库中获取软件包,他们将密钥打包并包含在存储库中,而没有其他地方,那么使用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可以避免所有额外的软件包麻烦。


当说难听的话就像面临的Ubuntu 18.04有它试图激怒我这个答案似乎是不完整的... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. ,即使后RM-ING在/ var / lib中/公寓/列表/ *的东西......
于尔根维格特

这只是镜像复制问题,不应影响存储库中软件包的身份验证或签名。由于1804刚刚脱离beta版本,因此许多镜像都在努力追赶,并且镜像服务可能会将您指向尚未完全同步的服务器。
dragon788 '18 -4-27

2

您可以从密钥服务器获取PUBLIC_KEY并将其添加到apt-key中。假设密钥服务器为pgpkeys.mit.edu,则首先需要输入:

gpg --keyserver pgpkeys.mit.edu --recv-key KEY_IN_ERROR
gpg -a --export KEY_IN_ERROR | sudo apt-key add -

将键KEY_IN_ERROR替换为错误消息中的键,即5C808C2B65558117。

另外,如果您真的有兴趣添加未签名的存储库,则可以在sources.list的所需存储库条目中添加一个标志,如下所示:

deb [allow-insecure=yes] http://www.deb-multimedia.org jessie main

如果您想微调单个条目的安全设置,这将非常有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.