Aktualisierung aus nicht signiertem Repository erzwingen


63

Ich verwende ein nicht signiertes Repo in Ubuntu 16.04 von Debian Multimedia:

deb http://www.deb-multimedia.org jessie main

Zur Installation führe deb-multimedia-keyringich Folgendes aus:

apt-get update && apt-get install deb-multimedia-keyring -y

Dies gibt einen Fehler:

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.

Antworten:


40

Mit der folgenden Option können Sie einige wichtige Sicherheitsmaßnahmen umgehen :

--allow-unauthenticated

Aus den Manpages für 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.

Seien Sie jedoch vorsichtig, wenn Sie diese Option in größerem Umfang verwenden. Die Sicherheitsvorkehrungen dienen dem Schutz Ihres Computers und schränken Ihre Freiheit nicht ein.


1
Ich benutze Raspbian stretchund bekomme sogar die Option, die E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.ich von Python 3.5 upgraden möchte. t 3.6.
Timo

2
sagte mir, dass "diese Option nicht zusammen mit den anderen Optionen interpretiert werden kann", wennsudo apt-get update --allow-unauthenticated
Xerus

26
HINWEIS: Dies scheint in Ubuntu 18.04 ab Juli 2018 nicht mehr zu funktionieren.
Jay Taylor

@JayTaylor: Ich habe gerade eine neue virtuelle Maschine für 18.04 geöffnet und der Befehl funktioniert hier perfekt. Pastebin hier: pastebin.com/ygLTnP1C
andrew.46

2
Interessant; Vielleicht gibt es noch etwas anderes auf der Maschine, die ich hinter den beobachteten Fehlern ausprobiert habe. In jedem Fall hat das Hinzufügen des [trusted=yes]Felds zu sources.list funktioniert. Vielen Dank für Ihre Sorgfalt @ andrew.46 :)
Jay Taylor

61

Sie können Optionen in Ihrem sources.list(in /etc/apt/sources.list) festlegen :

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

Die vertrauenswürdige Option deaktiviert die GPG-Prüfung. Siehe man 5 sources.listfür weitere Einzelheiten.

Sie können die Datei im Terminal entweder mit vim (oder einem beliebigen anderen Editor wie gedit) bearbeiten.


Wie greifen wir sources.listvom Terminal aus zu?
fuzzi

1
Es befindet sich in /etc/apt/sources.list. Sie können es entweder mit vim (oder einem beliebigen anderen Editor wie gedit) im Terminal bearbeiten.
Prathu Baronia

8

Eine andere generische Lösung wäre

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5C808C2B65558117

Hinweis: Ich habe die Lösung nicht mit diesem Repository getestet, aber mit dem Skype-Repository, und es hat einwandfrei funktioniert.

Eine andere für Ihren Fall spezifische Lösung besteht darin, die Schlüssel zu installieren

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

Wie im vollständigen Durchlauf hier beschrieben


3

Wenn Sie versuchen, ein Paket aus einem Repository abzurufen, in dem die Schlüssel gepackt und in das Repository aufgenommen wurden, und nicht woanders, kann es sehr ärgerlich sein, das Schlüssel- / Schlüsselringpaket mit dpkg herunterzuladen und zu installieren, und dies ist sehr schwierig in leicht skriptfähiger und wiederholbarer Weise.

Das folgende Skript wird nicht empfohlen, wenn Sie die Schlüssel von einem Schlüsselserver installieren können (wie in einer anderen Antwort empfohlen apt-key adv) oder wenn Sie sie von einer vertrauenswürdigen Quelle über https herunterladen und mit apt-key installieren können (z. B. wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -). Wenn Sie keine andere Möglichkeit haben, können Sie diese verwenden.

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

Ich habe das ursprünglich zusammengestellt, weil i3 in ihrem sur5r-Repo dies tut, aber dann habe ich herausgefunden, dass sich ihre Schlüssel in der keyserver.ubuntu.com-Liste befinden, sodass ich sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6all die zusätzlichen Paketprobleme einfach vermeiden kann .


Diese Antwort scheint unvollständig , wenn sie mit Ubuntu 18.04 gibt es versucht , sah mich an wie sagen böse Dinge zu ärgern ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. Auch nach rm-ing / var / lib / apt / lists / * Dinge ...
Jürgen Weigert

Dies ist lediglich ein Spiegelreplikationsproblem und sollte sich nicht auf die Authentifizierung oder das Signieren von Paketen in den Repositorys auswirken. Da 1804 gerade aus der Beta-Phase kommt, versuchen viele Spiegelserver aufzuholen, und der Spiegeldienst verweist Sie möglicherweise auf einen Server, der noch nicht vollständig synchronisiert ist.
Dragon788

2

Sie können den PUBLIC_KEY vom Keyserver abrufen und in apt-key einfügen. Angenommen, der Keyserver ist pgpkeys.mit.edu, müssen Sie zuerst Folgendes eingeben :

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

Ersetzen Sie den Schlüssel KEY_IN_ERROR durch den Schlüssel in Ihrer Fehlermeldung, dh 5C808C2B65558117.

Wenn Sie wirklich daran interessiert sind, ein nicht signiertes Repository hinzuzufügen, können Sie das a-Flag in den gewünschten Repository-Eintrag in der sources.list wie folgt einfügen:

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

Dies ist sehr nützlich, wenn Sie Ihre Sicherheitseinstellungen für einzelne Einträge optimieren möchten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.