Wie kann ich die GPG-Signaturprüfungen von apt umgehen / ignorieren?


47

Alle Key-Server, die ich besuche, laufen aus. Ich muss Pakete installieren, ohne die Signaturen der öffentlichen Schlüssel zu überprüfen. Gibt es eine Möglichkeit, alle Signaturprüfungen zu umgehen / alle Signaturfehler zu ignorieren oder zu glauben, die Signatur sei bestanden?

Mir ist sehr wohl bewusst, dass es gefährlich ist, dies zu tun


1
Normalerweise installieren Sie den Schlüssel lokal, während Sie ein Repository hinzufügen. Warum müssen Sie dann auf die Schlüsselserver zugreifen?
1.

Antworten:


68

Übergeben Sie die --allow-unauthenticatedOption an apt-getwie in:

sudo apt-get --allow-unauthenticated upgrade

Aus der Manualseite von apt-get:

--allow-unauthenticated
Ignoriert, wenn Pakete nicht authentifiziert werden können, und fragt nicht danach. Dies ist nützlich für Tools wie pbuilder. Konfigurationselement: APT :: Get :: AllowUnauthenticated.

Sie können diese Einstellung dauerhaft festlegen, indem Sie Ihre eigene Konfigurationsdatei unter /etc/apt/apt.conf.d/dir verwenden. Der Dateiname kann sein 99myownund diese Zeile enthalten:

APT::Get::AllowUnauthenticated "true";

Auf diese Weise müssen Sie die Option nicht jedes Mal verwenden, wenn Sie Software installieren möchten. Hinweis: Es wird nicht empfohlen, diese Option standardmäßig festzulegen. Sie umgeht Signaturprüfungen, die es einem Gegner ermöglichen könnten, Ihren Computer zu gefährden.


4
Zur Info: Dies funktioniert mit, apt-getaber nicht mit dem aptBefehl plain .
Tor Klingberg

2
Ubuntu 16.0 LTS. Dies funktioniert nicht / hat keine Auswirkung auf irgendetwas
wvxvw

7

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 Keyserver installieren oder von einer vertrauenswürdigen Quelle über https herunterladen können. Wenn Sie jedoch 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 dies 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 E3CA1A89941C42E6alle zusätzlichen Probleme mit Paketen einfach vermeiden kann .


Kam wegen des i3 Problems hierher - habe es sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6gelöst! Danke vielmals!
Benedikt Köppel

6

Vielleicht können Sie versuchen, die Datei /etc/apt/apt.conf zu erstellen (sie wird gelesen, wenn Sie sie erstellen) und den folgenden Code einfügen:

APT{Ignore {"gpg-pubkey"; }};

5
Das funktioniert bei mir nicht. Aber funktioniert, wenn ich hinzufügteAPT { Get { AllowUnauthenticated "1"; }; };
PHP-Coder

Ubuntu 16.0 LTS: hat keine Auswirkung auf das, was apt-get tut.
wvxvw

1

/etc/apt/apt.conf.d/99allow_unauthMit diesem Inhalt erstellen :

APT { Get { AllowUnauthenticated "1"; }; };

Dank php-Coder ‚s Kommentar .


0

Ich hatte das gleiche Problem mit einem alten Debian-Server. Ich konnte kein Ereignis machen

apt-get update

das gab mir folgenden fehler:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

Schließlich bestand die Lösung darin, Folgendes hinzuzufügen:

Acquire::Check-Valid-Until false;

nach /etc/apt/apt.conf (falls nicht vorhanden). Danach wurde der Fehler zu einer einfachen Warnung.

Ich denke, es könnte auch auf Ubuntu funktionieren.

Bitte beachten Sie, dass es völlig unsicher ist.


Wenn es so unsicher ist, dann schlage ich vor, dass Sie es überhaupt nicht posten.
Yufenyuy Veyeh Dider 11.

Der sichere Weg, dies zu tun, ist das Upgrade der Distribution. In einigen komplizierten Kundenfällen können Sie kein Upgrade durchführen. Und da die ganze Frage mit diesem Haftungsausschluss beginnt: "Mir ist sehr wohl bewusst, dass es gefährlich ist, dies zu tun", dachte ich, mein Beitrag wurde angeeignet. Wenn nicht, kann ich es entfernen.
Gnusam
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.