25
Oktober
2023
Wie entferne ich die Warnung beim Aktualisieren von apt-get update „W: Schlüssel ist im Legacy-Trusted.gpg-Schlüsselring gespeichert“?
16:15

Wie entferne ich die Warnung beim Aktualisieren von apt-get update „W: Schlüssel ist im Legacy-Trusted.gpg-Schlüsselring gespeichert“?

25 Oktober 2023 16:15

Wenn Repositorys von Drittanbietern mit dem Linux-Betriebssystem verbunden sind, erhalten Sie beim Aktualisieren von Paketen möglicherweise die Fehlermeldung „Der Schlüssel wird im Legacy-Trusted.gpg-Schlüsselring gespeichert“.

Grund für diese Warnung

In mehreren neueren Versionen von Ubuntu und Linux Mint wird auf die Verwendung des Programms apt-key verzichtet, das den Repository-Schlüssel zu einem einzelnen Repository hinzufügte. Das ist veraltet (Legacy), obwohl es nicht an Kompatibilität verloren hat, es wird jedoch nicht empfohlen, es zu verwenden. Anstelle des „alten“ Keystores /etc/apt/trusted.gpg, следует использовать новые хранилища ключей GPG для каждого из репозиториев, в папке: /etc/apt/trusted.gpg.d.

Das Problem lösen

  1. Wir kennen den Namen des Repositorys (in der Fehlermeldung geschrieben, wenn apt-get update). In diesem Fall ist es dl.winehq.org

  2. Mit dem Befehl sudo apt-key list ermitteln wir den Hexadezimalcode der Repository-Signatur

    sudo apt-key list

Du musst mit deinen Augen nach Namen suchen. Folgende Zeilen sind sichtbar:
------------------------------------------------
pub rsa3072 2018-12-10 [SC]
D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F
uid [unbekannt] WineHQ-Pakete wine-devel@winehq.org

  1. Ich finde den Signaturcode heraus – die letzten 8 Zeichen des vollständigen GPG-Schlüsselcodes.

Aus dem Code D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F nehme ich die letzten 8 Zeichen und entferne das Leerzeichen.
Es stellte sich heraus, F987672F.

  1. Ich importiere ein neues Repository mit einem einzeiligen Befehl in eine GPG-Datei:

    sudo apt-key export F987672F | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/wine-hq.gpg

wo ich apt-key nur verwende, um einen Schlüssel mit Fingerabdruck F987672F zu exportieren

Für andere Programme muss der Beispielbefehl entsprechend korrigiert werden. Sie müssen lediglich den Exportschlüsselcode und den Namen der Zieldatei ersetzen.

Für den Yandex-Browser wird die Signatur beispielsweise im Ordner /etc/apt/trusted.gpg.d/ in der Datei yandex-browser.gpg gespeichert:

sudo apt-key export 083A7A9A | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/yandex-browser.gpg

So vermeiden Sie, dass der Fehler beim Hinzufügen von Drittanbieter-Repositorys erneut auftritt

Jegliche Verwendung des Befehls sollte vermieden werden sudo apt-key, wie zum Beispiel:
sudo apt-key import файл_ключа.key oder
wget -qO- <URL> | sudo apt-key add -
*curl -sS <URL>.gpg | sudo apt-key add -

*sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 00000000

Der adv-Schlüssel ist veraltet, wie im Mann angegeben.
Team sudo apt-key add veraltet.

Der richtige (neue) Weg zum Hinzufügen eines Repository-Schlüssels am Beispiel des WineHQ-Repositorys:

Wenn der Schlüssel auf dem Server liegt:

wget  -qO- https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/winehq.gpg  > /dev/null

Wenn öffentlicher Schlüssel befindet sich in der kryptografischen Schlüsseldatenbank auf dem Server keyserver.ubuntu.com:

Erste Mannschaft importiert den Schlüssel in die lokale Datenbank:

gpg --keyserver keyserver.ubuntu.com --recv E084DAB9

Zweites Team exportiert den Schlüssel und fügt ihn dem privaten some.gpg-Speicher hinzu:

gpg --export E084DAB9  | sudo tee /etc/apt/trusted.gpg.d/some.gpg  > /dev/null

Dabei ist E084DAB9 der Fingerabdruck des öffentlichen Schlüssels, some.gpg der vom Benutzer generierte GPG-Keystore-Dateiname.

Überprüfen Sie, ob gpg die richtige Datei generiert hat:

file /etc/apt/trusted.gpg.d/some.gpg

Die Ausgabe sollte zeigen, dass wir eine Datei im OpenPGP-Binärzertifikatformat haben:

/etc/apt/trusted.gpg.d/some.gpg: OpenPGP Public Key Version 4, erstellt am Montag, 10. Dezember 16:56:24 2018, RSA (Verschlüsselung oder Signierung, 3072 Bit); Benutzer-ID; Unterschrift; OpenPGP-Zertifikat



Nachdem Sie den Schlüssel importiert haben, können Sie den Befehl wie gewohnt ausführen apt-add-repository und das Programm installieren, zum Beispiel:
sudo apt-add-repository 'https://dl.winehq.org/wine-builds/ubuntu/ main'
sudo apt update
sudo apt install wine

Der richtige Weg zur Lösung von Problem Nr. 2 (entnommen aus der OpenVPN-Installationsanleitung)

Laden Sie den repo-public.gpg-Schlüssel von der Website herunter und fügen Sie ihn dem Schlüsselbund /usr/share/keyrings/openvpn-public.gpg hinzu

curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | sudo gpg --dearmor -o /usr/share/keyrings/openvpn-public.gpg

Bei dieser Methode wird curl anstelle von wget, der Parameter -o anstelle von tee und /usr/share/keyrings/ anstelle des Ordners /etc/apt/trusted.gpg.d/ verwendet.

In der Datenquellenbeschreibungsdatei für das Drittanbieter-Software-Repository Ubuntu Linux 22 „Jammy“ geben wir den importierten GPG-Schlüssel an, mit dem das Repository signiert ist

sudo echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] https://build.openvpn.net/debian/openvpn/stable jammy main" > /etc/apt/sources.list.d/openvpn-repo.list

Hier in der Datei in resources.list.d wird eine Erwähnung des Schlüssels hinzugefügt [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] aus dem GPG-Schlüsselbund.

Welcher Ordner eignet sich am besten zum Speichern von GPG-Schlüsseln?

(Nachtrag vom 24. November 2023)

Wo ist der richtige Ort zum Speichern von Schlüsseln – im Ordner /etc/apt/trusted.gpg.d/ oder in /usr/share/keyrings?

Die Anweisung man resources.list beantwortet diese Frage folgendermaßen:

"Die empfohlenen Speicherorte zum Speichern von Schlüsseln sind /usr/share/keyrings für paketverwaltete Schlüsselringe und /etc/apt/keyrings für sysop-verwaltete Schlüsselringe. Wenn keine Schlüsselringdateien angegeben sind, ist der Standardwert der Schlüsselring „trusted.gpg“ und alle Schlüsselringe im Verzeichnis „trusted.gpg.d/“ (...)“

Daher gibt es keine direkte Anleitung zum ordnungsgemäßen Speichern von GPG-Schlüsseln. Logische Schlüssel für Repositorys passend in einen Ordner legen /etc/apt/trusted.gpg.d/, тогда как наборы ключей для других целей можно помещать в /usr/share/keyrings. Если стоит цель - сохранить ключи при переустановке системы, то следует использовать папку ~/.local/share/keyrings, in dem die privaten Schlüssel des Benutzers gespeichert werden können.


Quellen:



Verwandte Veröffentlichungen