Startseite
» Gewusst wie
»
Beheben Sie APT-Signaturfehler durch Reparieren des Repository-Schlüssels
Beheben Sie APT-Signaturfehler durch Reparieren des Repository-Schlüssels
Meldet APT „Die folgenden Signaturen konnten nicht verifiziert werden“, ermitteln Sie das Repository und den spezifischen Fehlercode in derselben Ausgabe und reparieren Sie anschließend den vertrauenswürdigen Signaturschlüssel oder den Quelleintrag dieses Repositorys. Bei einem Drittanbieter-Repository fordern Sie den aktuellen Schlüssel vom Softwarehersteller an und binden ihn mit der entsprechenden Quelle ein Signed-By. Deaktivieren Sie keine Signaturprüfungen und fügen Sie keinen unbekannten Schlüssel global hinzu.
Beispielausgabe von apt update: Ein Fehler wegen fehlenden Schlüssels nennt das betroffene Repository und enthält die Kennung NO_PUBKEY.
1. Suchen Sie das Repository und lesen Sie die genaue Fehlermeldung.
Führen Sie ein Update durch, um die vollständige Nachricht einzusehen:
sudo apt update
Suchen Sie nach der URL daneben Err:und nach einem Token wie z. B. NO_PUBKEY, EXPKEYSIG, KEYEXPIREDoder BADSIG. Die URL gibt an, welche Quelle fehlgeschlagen ist; das Token grenzt die Ursache ein. APT überprüft signierte Repository-Metadaten, bevor der Paketindex als vertrauenswürdig eingestuft wird. Daher ist eine fehlgeschlagene Signaturprüfung ein Sicherheitssignal und keine bloße Warnung. Ubuntu-Installationen enthalten bereits Schlüssel für die Standard-Ubuntu-Archive; die manuelle Schlüsseleinrichtung ist normalerweise nur für später hinzugefügte Repositories erforderlich.
Die Quelldefinition finden Sie, indem Sie nach dem im Fehler genannten Host suchen. Ersetzen Sie den Beispielhost durch den Host aus Ihrem Terminal:
Suchen Sie im APT-Quellverzeichnis nach dem genauen Host, der vom fehlgeschlagenen Update gemeldet wurde.
Ubuntu 24.04 und höher verwenden standardmäßig deb822-Quelldateien mit der Endung .deb822 .sources; ältere Installationen verwenden oft einzeilige .listDateien. Überprüfen Sie die Repository-URL, die Suite oder den Ubuntu-Codenamen sowie alle vorhandenen Signed-ByEinträge. Falls die Quelle auf eine vom Hersteller nicht mehr unterstützte Version verweist, befolgen Sie die Anweisungen des Herstellers für Ihre Ubuntu-Version oder deaktivieren Sie diese Quelle. Ein Schlüssel kann einen veralteten oder falschen Repository-Pfad nicht korrigieren.
2. Einen fehlenden oder verdrehten Fremdschlüssel reparieren
Prüfen NO_PUBKEYSie zunächst, ob es sich um das von Ihnen absichtlich installierte Repository handelt. Öffnen Sie die aktuelle Installationsdokumentation des Herausgebers und ermitteln Sie dort die URL des Signaturschlüssels sowie den vollständigen Fingerabdruck. Vergleichen Sie den Fingerabdruck gegebenenfalls mit einer separat veröffentlichten Herstellerreferenz. Verwenden Sie keinen Schlüssel von einem beliebigen Keyserver, nur weil dessen Kurz-ID mit der Fehlermeldung übereinstimmt.
Bei Anbietern, die einen ASCII-geschützten .ascSchlüssel veröffentlichen, installieren Sie diesen als separaten APT-Schlüsselring. Ersetzen Sie die Beispiel-URL durch die exakte, vom Anbieter dokumentierte URL.
Die .gpgDatei muss für den APT-Benutzer mit eingeschränkten Downloadrechten lesbar sein. Falls der Herausgeber einen binären .gpgSchlüsselbund bereitstellt, befolgen Sie dessen Anweisungen, anstatt ihn erneut zu entschlüsseln. Ubuntu empfiehlt, Drittanbieterschlüssel in einem separaten Schlüsselbund zu speichern und von diesem Repository referenzieren zu lassen, um die Anzahl der Quellen, die den Schlüssel verwenden können, einzuschränken.
Eine quellenspezifische Signed-By-Einstellung sorgt dafür, dass das Repository an seinen eigenen Schlüsselbund gebunden bleibt.
Bearbeiten Sie die bestehende Quelldefinition, anstatt einen doppelten Eintrag hinzuzufügen. /etc/apt/sources.list.d/vendor.sourcesVerwenden Sie für eine deb822-Datei wie z. B. die tatsächlichen URI-, Suite- und Komponentenwerte des Anbieters und fügen Sie dann den Schlüsselringpfad hinzu:
Types: deb
URIs: https://packages.example.org/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive.gpg
Befindet sich der bestehende Eintrag in einer einzeiligen .listDatei, lautet die entsprechende Syntax deb [signed-by=/etc/apt/keyrings/vendor-archive.gpg] https://packages.example.org/ubuntu YOUR_UBUNTU_CODENAME main. Die dokumentierte Suite und die Komponenten des Repositorys bleiben erhalten; die Beispielwerte sind Platzhalter. Vermeiden Sie apt-key add: Diese Syntax ist veraltet, und ein globaler vertrauenswürdiger Schlüssel kann einem Drittanbieterschlüssel mehr Berechtigungen verleihen als beabsichtigt.
Wenn die Meldung EXPKEYSIG„oder“ lautet KEYEXPIRED, ist der Signaturschlüssel möglicherweise abgelaufen oder wurde vom Anbieter ausgetauscht. Laden Sie den Ersatzschlüssel herunter, überprüfen Sie ihn gemäß den aktuellen Anweisungen des Anbieters und aktualisieren Sie anschließend den Schlüsselbund der Quelle. Ignorieren Sie das Ablaufdatum nicht, um die Vertrauenswürdigkeit des alten Schlüssels zu verlängern.
3. Überprüfen Sie die Uhrzeit, das Ubuntu-Archiv und die Spiegelungsprobleme.
Wenn es sich bei dem Repository um ein offizielles Ubuntu-Archiv handelt, importieren Sie keinen Drittanbieterschlüssel. Überprüfen Sie mit `ls -l`, ob Ihre Systemuhr korrekt ist timedatectl status, und vergewissern Sie sich, dass die Quelle eine gültige Ubuntu-Archiv-URL und den Codenamen Ihrer installierten Version verwendet. Das ubuntu-keyringPaket stellt Ubuntu-Archivsignaturschlüssel bereit. Falls die Paketverwaltung noch über eine vertrauenswürdige Ubuntu-Quelle funktioniert, aktualisieren Sie dieses Paket mit:
sudo apt install --reinstall ubuntu-keyring
Eine BADSIGFehlermeldung bedeutet, dass die Signatur nicht mit den von APT empfangenen Metadaten übereinstimmt. Ein erneuter Schlüsselimport ist in der Regel nicht zielführend. Prüfen Sie, ob die Systemuhr falsch eingestellt ist, ob ein veralteter oder inkonsistenter Spiegelserver, ein Caching-Proxy oder ein Veröffentlichungsproblem im Repository vorliegt. Versuchen Sie es nach Behebung der Ursache erneut. Falls nur eine Drittanbieterquelle fehlschlägt und Sie diese nicht benötigen, deaktivieren Sie deren spezifischen Eintrag .sources, .listwährend Sie den Betreuer kontaktieren. Lassen Sie die Sicherheitsüberprüfung aktiviert.
4. Überprüfen Sie die Reparatur.
Nachdem Sie die Quelle oder den Schlüsselbund korrigiert haben, führen Sie apt update erneut aus und vergewissern Sie sich, dass kein Signaturfehler mehr besteht.
Führen Sie den Vorgang sudo apt updateerneut aus. Die Reparatur ist abgeschlossen, sobald das betroffene Repository ohne Signaturwarnung abgerufen wird und APT den Status „OK“ erreicht Reading package lists... Done. Ein erfolgreiches Update bestätigt nicht die Sicherheit eines Drittanbieters, sondern lediglich, dass die Metadatensignatur mit einem von Ihnen als vertrauenswürdig eingestuften Schlüssel übereinstimmt. Sollte die Überprüfung weiterhin fehlschlagen, überprüfen Sie die Repository-URL, den Codenamen, den Fingerabdruck des Schlüssels, die Schlüsselringberechtigungen und das genaue Fehlertoken erneut, bevor Sie weitere Änderungen vornehmen.