dnf bricht mit 'GPG check FAILED' ab? Meist fehlt der neue Signaturschlüssel nach einem Repo- oder Versionswechsel. So importierst du ihn sauber nach.
Aufwand:
ca. 10 Min.
Voraussetzung:
sudo-Rechte, Terminal
Das Symptom
Die Installation läuft an, die Pakete sind geladen – und im letzten Moment
bricht dnf ab: GPG check FAILED, gefolgt von einer Meldung, der
öffentliche Schlüssel sei nicht installiert. Nichts wird eingespielt, obwohl
alles bereitlag.
Die „Layer 8“-Wahrheit
Das ist kein Bug, das ist das Sicherheitsnetz bei der Arbeit. Fedora signiert
jedes einzelne Paket, und dnf weigert sich, etwas zu installieren, dessen
Signatur es nicht gegen einen hinterlegten Schlüssel bestätigen kann. Der
Fehler heißt also nicht „kaputt“, sondern „ich kann gerade nicht beweisen, dass
das echt ist“. Fast immer fehlt schlicht der richtige Schlüssel: Nach einem
Versionssprung hat die neue Fedora-Ausgabe einen eigenen, den das alte System
noch nicht kennt; oder du hast ein Fremd-Repo hinzugefügt, dessen Schlüssel nie
importiert wurde; oder ein Anbieter hat rotiert. Die Verlockung, mit
--nogpgcheck einfach durchzuwinken, ist groß und genau falsch – damit
schaltest du die Prüfung ab, die dich vor untergeschobenen Paketen schützt. Der
saubere Weg ist zwei Zeilen lang: den fehlenden Schlüssel nachimportieren, Cache
leeren, fertig. Nicht das Schloss aufbrechen, sondern den passenden Schlüssel
nachmachen.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Prüfen, welches Repo die Signatur bemängelt
Die Meldung nennt das betroffene Repository. Handelt es sich um ein Fedora-Standardrepo oder ein Fremd-Repo? Danach richtet sich, welcher Schlüssel fehlt:
dnf repolist --enabled
2.
Die Fedora-Signaturschlüssel auffrischen
Nach einem Versionswechsel fehlt oft der Schlüssel der neuen Fedora-Ausgabe. Das Paket fedora-gpg-keys bringt die aktuellen Schlüssel mit – installieren bzw. aktualisieren:
sudo dnf install fedora-gpg-keys
3.
Den Schlüssel direkt importieren
Alternativ den passenden Schlüssel gezielt einlesen. $(rpm -E %fedora) setzt deine Version ein; die Schlüssel liegen unter /etc/pki/rpm-gpg/:
Meldet ein Drittanbieter-Repo (z. B. RPM Fusion oder ein COPR) den Fehler, steht dessen Schlüssel-URL in der .repo-Datei unter gpgkey=. Diese URL direkt importieren:
Nach dem Schlüssel-Import den Cache verwerfen, damit dnf sauber neu prüft, und den Vorgang wiederholen:
sudo dnf clean all
sudo dnf upgrade
Häufige Fragen (FAQ)
?Warum schlägt die GPG-Prüfung plötzlich fehl?
Fedora signiert jedes Paket kryptografisch, und dnf prüft die Signatur vor der Installation gegen einen öffentlichen Schlüssel, der lokal hinterlegt sein muss. Schlägt das fehl, ist meist der passende Schlüssel gar nicht vorhanden: nach einem Versions-Upgrade (jede Fedora-Ausgabe hat einen eigenen Schlüssel), nach dem Hinzufügen eines Fremd-Repos, oder wenn ein Anbieter seinen Schlüssel rotiert hat. Das ist ein Schutzmechanismus, der greift – kein Defekt.
?Kann ich die Prüfung nicht einfach abschalten?
Technisch ja, mit gpgcheck=0 in der Repo-Datei oder --nogpgcheck. Aber damit wirfst du genau die Sicherheit weg, die dich vor manipulierten Paketen schützt: Ohne Prüfung installierst du blind, was auch immer der Server liefert. Der richtige Weg ist fast immer, den korrekten Schlüssel nachzuimportieren, statt die Kontrolle auszuschalten.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.
git commit bricht mit „gpg failed to sign the data“ ab? Meist fehlt der passende Schlüssel, oder GPG kann im Terminal nicht nach der Passphrase fragen.
SELinux verweigert einem Dienst den Zugriff (AVC denial)? Statt dauerhaft setenforce 0 lieber das Audit-Log lesen und Kontext oder Boolean korrigieren.
Nach dem Verschieben von Dateien meldet ein Dienst 'Permission denied', obwohl die Rechte stimmen? Der SELinux-Kontext fehlt, restorecon repariert ihn.
apt install meldet 'E: Unable to locate package'? Meist fehlt ein apt update, das Repository oder es ist ein Tippfehler. So installierst du das Paket doch.