Plesk: „GPG check FAILED“ bei dnf beheben (Key 5B6AB2160B50DB96)
Du willst auf deinem Plesk-Server Updates einspielen und dnf bricht mit dieser Meldung ab:
Public key for plesk-php83-cli-8.3.36-0redhat.9.261021.0804.x86_64.rpm is not installed
Public key for plesk-php83-fpm-8.3.36-0redhat.9.261021.0804.x86_64.rpm is not installed
...
Error: GPG check FAILED
Je nach Ausgabe steht davor noch eine Zeile mit Header V4 RSA/SHA256 Signature, key ID 0b50db96: NOKEY. Auf Deutsch: Die GPG-Prüfung ist fehlgeschlagen. dnf hat neue Plesk-Pakete geladen, kennt aber den Schlüssel nicht, mit dem Plesk sie signiert hat, und installiert deshalb lieber gar nichts. Bei mir kam das am 21. Oktober 2026 beim PHP-Sicherheitsupdate. So kannst du den neuen Plesk-Schlüssel in ein paar Minuten sauber prüfen und installieren.
Kurz erklärt
- dnf ist der Paketmanager von AlmaLinux, Rocky Linux, RHEL (Red Hat Enterprise Linux) und CloudLinux. Er installiert und aktualisiert Software, auch die Pakete von Plesk.
- Eine Signatur ist eine digitale Unterschrift an jedem Paket. Sie beweist, dass das Paket wirklich von Plesk kommt und unterwegs nicht verändert wurde.
- Der GPG-Schlüssel ist das Gegenstück zur Unterschrift. Nur wenn der öffentliche Schlüssel von Plesk auf deinem Server installiert ist, kann dnf die Signatur prüfen.
- Die Key ID ist der Kurzname eines Schlüssels: die letzten Stellen seines Fingerprints (eine lange, eindeutige Prüfsumme). 5B6AB2160B50DB96 und das kurze 0b50db96 aus der Fehlermeldung sind derselbe Schlüssel.
- Was passiert ist: Neue Plesk-Pakete wie die PHP-Updates vom 21. Oktober 2026 sind mit einem neuen Schlüssel signiert, erstellt am 18. August 2026. Fehlt der auf deinem Server, schlägt die Prüfung fehl.
Was du brauchst
- Einen Plesk-Server mit dnf, also AlmaLinux, Rocky Linux, RHEL oder CloudLinux 8 oder 9.
- SSH-Zugang als root oder mit sudo. Bist du als root eingeloggt, lässt du das
sudoin den Befehlen einfach weg. - Ein frisches Backup oder einen Snapshot. Plesk weist darauf hin, dass Dienste wie PHP-FPM beim Update kurz neu starten.
Schritt 1: Prüfen, ob der Schlüssel fehlt
rpm -q gpg-pubkey-0b50db96
Kommt package gpg-pubkey-0b50db96 is not installed, fehlt der neue Schlüssel und du machst mit Schritt 2 weiter. Kommt gpg-pubkey-0b50db96-6a84083c, ist er schon da und dein Problem liegt woanders. Schau dann in deiner Fehlermeldung nach, welche Key ID dort steht.
Plesk selbst empfiehlt als ersten Versuch sudo plesk installer update. Das aktualisiert Plesk und installiert dabei die aktuellen Schlüssel. Ich bin direkt den manuellen Weg gegangen, weil ich vor dem Import sehen wollte, was ich da eigentlich importiere.
Schritt 2: Die Schlüsseldatei laden und ansehen
Plesk veröffentlicht seine Schlüssel in der Datei plesk.gpg. Lad sie zuerst nur herunter und schau rein. Diese beiden Befehle ändern nichts an deinem System:
curl -fsSL -o /tmp/plesk.gpg https://autoinstall.plesk.com/plesk.gpg
gpg --show-keys /tmp/plesk.gpg
Du siehst drei Schlüssel, alle von „Plesk Team“. Die zwei älteren von 2015 und 2025 sind normal. Wichtig ist der letzte Block:
pub rsa3072 2026-08-18 [SC]
43C5DA0DBF8B7DE1457C94285B6AB2160B50DB96
uid Plesk Team <info@plesk.com>
sub rsa3072 2026-08-18 [E]
Prüf drei Dinge: Datum 2026-08-18, Name „Plesk Team <info@plesk.com>“ und ein Fingerprint, der auf 5B6AB2160B50DB96 endet. Zum Vergleich der ganze Fingerprint in Vierergruppen: 43C5 DA0D BF8B 7DE1 457C 9428 5B6A B216 0B50 DB96. Passt etwas nicht, importier nichts und frag beim Plesk-Support nach. Eine Zeile wie gpg: directory '/root/.gnupg' created ist harmlos.
Schritt 3: Importieren
Importier genau die Datei, die du gerade geprüft hast, nicht eine neue Kopie aus dem Netz:
sudo rpm --import /tmp/plesk.gpg
rpm -q gpg-pubkey-0b50db96
rm /tmp/plesk.gpg
Der zweite Befehl muss jetzt gpg-pubkey-0b50db96-6a84083c zeigen.
Schritt 4: Update noch einmal starten
Starte einfach das Update nochmal, das vorher abgebrochen ist. Entweder in Plesk unter Tools & Einstellungen → Updates oder per SSH, zum Beispiel für die PHP-Pakete von Plesk:
sudo dnf upgrade 'plesk-php*'
Diesmal sollte kein GPG-Fehler mehr kommen. Bei mir ging es direkt durch: 8.2.34 auf 8.2.35 und 8.3.35 auf 8.3.36.
Schritt 5: Prüfen
rpm -qa 'gpg-pubkey*' --qf '%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep -i plesk
rpm -q --qf '%{NAME}-%{VERSION}\t%{RSAHEADER:pgpsig}\n' plesk-php83-cli
Bei mir sieht das so aus. Wichtig ist die Zeile mit 0b50db96, beim Paket die Key ID 5b6ab2160b50db96. Statt plesk-php83-cli nimmst du deine PHP-Version, zum Beispiel plesk-php82-cli.
914bdf7e-55c05220 Plesk Team <info@plesk.com> public key
ce550e57-67c8b7f7 Plesk Team <info@plesk.com> public key
0b50db96-6a84083c Plesk Team <info@plesk.com> public key
plesk-php83-cli-8.3.36 RSA/SHA256, Wed 21 Oct 2026 08:20:31 AM UTC, Key ID 5b6ab2160b50db96
Ging es um ein PHP-Update, starte danach PHP-FPM neu und prüf die Version, wie im PHP-Guide in Schritt 3 beschrieben.
Finger weg von –nogpgcheck
Im Netz liest du oft dnf --nogpgcheck oder gpgcheck=0. Damit schaltest du die Prüfung komplett ab, und ein manipuliertes Paket würde genauso brav installiert. Importier lieber einmal den richtigen Schlüssel und lass die Prüfung an.
FAQ
Ist das sicher? Ja, wenn du die Datei per HTTPS von autoinstall.plesk.com lädst und vor dem Import Datum, Name und Fingerprint prüfst. Plesk schreibt selbst, dass du Schlüssel nur von dieser offiziellen URL importieren sollst, und nennt im Support-Artikel dieselbe Key ID 5B6AB2160B50DB96.
Warum holt dnf den Schlüssel nicht selbst? Bei mir steht in /etc/yum.repos.d/plesk.repo zwar gpgcheck=1, aber keine gpgkey=-Zeile. dnf weiß also nicht, wo es einen neuen Schlüssel holen soll, und bricht ab, statt zu fragen. Nachsehen kannst du mit grep -i gpgkey /etc/yum.repos.d/plesk*.repo.
Warum gab es keine Ankündigung? Als ich den Fehler hatte, habe ich bei Plesk keine Ankündigung zum neuen Schlüssel gefunden. Inzwischen beschreibt Plesk den Fehler im Support-Artikel zu fehlenden Public Keys (Stand 21. Oktober 2026), inklusive dnf und apt.
Der neue Schlüssel fehlt in plesk.gpg. Laut Plesk kann eine veraltete, zwischengespeicherte Kopie der Datei der Grund sein. Der neue Schlüssel liegt auch einzeln unter https://autoinstall.plesk.com/plesk-2026-08-18.gpg. Ich habe die Datei geprüft, sie enthält genau den Schlüssel von oben. Lad sie wie in Schritt 2 herunter, prüf sie und importier sie dann.
Und unter Debian oder Ubuntu? Dort meldet apt laut Plesk NO_PUBKEY 5B6AB2160B50DB96. Mein Server läuft mit AlmaLinux, das habe ich also nicht selbst getestet. Plesk empfiehlt dafür sudo plesk installer update und sonst diesen Import:
curl -sS https://autoinstall.plesk.com/plesk.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/plesk.gpg > /dev/null
sudo chmod a+r /etc/apt/trusted.gpg.d/plesk.gpg
sudo apt update
Stehen in deinen Plesk-Einträgen unter /etc/apt/sources.list.d/ Angaben mit signed-by=, ignoriert apt diesen Ordner. Dann muss der Schlüssel in die Datei, auf die signed-by= zeigt.
Fazit
Schlüssel prüfen, importieren, Update wiederholen, und die GPG-Prüfung bleibt an. Du bist wegen der PHP-Lücken hier? Dann geht es im PHP-Sicherheitsguide weiter. Neue Guides bekommst du über meinen Newsletter.
Hat dir der Guide geholfen? Dann spendier mir gern einen Kaffee auf Ko-fi. Damit bleibt MappleBox werbefrei.