Wie man sein WordPress Admin-Passwort manuell zurücksetzt
Der Verlust des Zugriffs auf Ihr WordPress-Administratorkonto bedeutet nicht zwangsläufig, dass Sie die Kontrolle über Ihre Website verlieren. Wenn der standardmäßige E-Mail-Ablauf „Passwort vergessen?” unterbrochen ist — aufgrund falsch konfigurierter Mail-Einstellungen, einer nicht zugänglichen E-Mail-Adresse oder eines beschädigten Benutzereintrags — können Sie ihn vollständig umgehen, indem Sie das Passwort direkt auf Datenbank-, Dateisystem- oder Shell-Ebene zurücksetzen.
Dieser Leitfaden behandelt vier bewährte Methoden: phpMyAdmin, FTP über functions.php, WP-CLI über SSH und das WordPress-Notfall-Passwortreset-Skript. Jede Methode wird mit genauen Schritten, Sicherheitshinweisen und den spezifischen Szenarien erläutert, in denen sie die richtige Wahl ist.
Wenn der Standard-Reset-Ablauf fehlschlägt
Bevor Sie zu einer manuellen Methode greifen, sollten Sie verstehen, warum der integrierte Reset fehlschlägt. Die häufigsten Ursachen sind:
- Unterbrochene WordPress-Mail-Zustellung —
wp_mail()hängt von dermail()-Funktion von PHP oder einem SMTP-Plugin ab. Wenn keines davon konfiguriert ist, wird die Reset-E-Mail stillschweigend verworfen. - Kein Zugriff auf den registrierten E-Mail-Posteingang — das Konto wurde mit einer nicht mehr gültigen Adresse erstellt.
- Beschädigte
wp_users-Tabelle — selten, aber möglich nach einer fehlgeschlagenen Migration oder einem Plugin-Konflikt. - Vollständig aus wp-admin ausgesperrt — Brute-Force-Schutz-Plugins (Wordfence, Limit Login Attempts) können den Reset-Endpunkt selbst blockieren.
Die Identifizierung der Grundursache ist wichtig, da einige Methoden (WP-CLI, phpMyAdmin) das Passwort korrigieren, ohne das Mail-System zu berühren, während andere (das Notfallskript) HTTP-Zugriff auf die Website erfordern.
Methode 1: Passwort über phpMyAdmin zurücksetzen
Am besten geeignet für: Shared-Hosting-Umgebungen, in denen SSH nicht verfügbar ist, aber cPanel oder ein ähnliches Kontrollpanel zugänglich ist.
phpMyAdmin bietet Ihnen direkten Lese-/Schreibzugriff auf die MySQL- oder MariaDB-Datenbank, die alle WordPress-Benutzeranmeldedaten speichert. Passwörter werden als bcrypt-Hashes (WordPress 6.x+) oder MD5-Hashes (ältere Installationen) gespeichert. Der integrierte Funktionsselektor von phpMyAdmin übernimmt das Hashing automatisch.
Schritt 1: phpMyAdmin über Ihr Kontrollpanel öffnen
Melden Sie sich bei Ihrem Hosting-Kontrollpanel an — cPanel, DirectAdmin oder einem benutzerdefinierten Panel. Suchen Sie den Abschnitt Datenbanken und klicken Sie auf phpMyAdmin. Wenn Sie einen VPS mit cPanel verwenden, lautet der Pfad in der Regel cPanel > Datenbanken > phpMyAdmin.
Schritt 2: Die WordPress-Datenbank auswählen
Klicken Sie in der linken Seitenleiste auf den Datenbanknamen, der Ihrer WordPress-Installation zugeordnet ist. Wenn Sie nicht sicher sind, welche Datenbank korrekt ist, öffnen Sie wp-config.php im Stammverzeichnis Ihrer Website und suchen Sie nach der Konstante DB_NAME.
Schritt 3: Die Tabelle wp_users öffnen
Erweitern Sie die Datenbanktabellen und klicken Sie auf wp_users. Wenn Ihre Installation ein benutzerdefiniertes Tabellenpräfix verwendet (definiert durch $table_prefix in wp-config.php), wird die Tabelle <prefix>_users heißen — zum Beispiel site7_users.
Schritt 4: Die Admin-Benutzerzeile bearbeiten
- Suchen Sie die Zeile, in der
user_loginmit Ihrem Admin-Benutzernamen übereinstimmt. Bei den meisten Standardinstallationen ist dies die Zeile mitID = 1. - Klicken Sie auf Bearbeiten (das Bleistift-Symbol).
- Suchen Sie das Feld
user_pass. - Wählen Sie im Dropdown-Menü Funktion neben
user_passdie Option MD5. - Geben Sie im Feld Wert Ihr neues Passwort im Klartext ein.
- Scrollen Sie nach unten und klicken Sie auf OK.
Wichtiger technischer Hinweis: Die Auswahl von MD5 ist für die sofortige Anmeldung ausreichend, da WordPress beim Login eine Legacy-MD5-Prüfung durchführt und das Passwort nach erfolgreicher Authentifizierung automatisch mit seinem stärkeren phpass– oder bcrypt-Algorithmus neu hasht. Sie müssen keinen bcrypt-Hash manuell generieren.
Schritt 5: Die Änderung überprüfen
Navigieren Sie zu Ihrer WordPress-Anmeldeseite und melden Sie sich mit dem neuen Passwort an. Wenn die Anmeldung erfolgreich ist, aktualisiert WordPress den Hash in der Datenbank stillschweigend auf den aktuellen Algorithmus.
Methode 2: Passwort über FTP durch Änderung von functions.php zurücksetzen
Am besten geeignet für: Situationen, in denen phpMyAdmin nicht verfügbar ist, aber FTP/SFTP-Anmeldedaten zugänglich sind.
Diese Methode fügt einen Passwort-Reset-Aufruf direkt in den Ausführungszyklus von WordPress ein, indem vorübergehend Code zur functions.php-Datei des aktiven Themes hinzugefügt wird.
Schritt 1: Über FTP verbinden
Verwenden Sie einen FTP-Client wie FileZilla oder Cyberduck. Geben Sie Ihren FTP-Host, Benutzernamen, Passwort und Port ein (21 für einfaches FTP, 22 für SFTP — bevorzugen Sie immer SFTP, wenn verfügbar). Navigieren Sie zu:
/public_html/wp-content/themes/<your-active-theme>/Um zu bestätigen, welches Theme aktiv ist, ohne sich bei wp-admin anzumelden, überprüfen Sie die Tabelle wp_options in phpMyAdmin nach dem Optionsschlüssel template.
Schritt 2: functions.php herunterladen und bearbeiten
Laden Sie functions.php auf Ihren lokalen Computer herunter. Öffnen Sie es in einem Code-Editor (VS Code, Sublime Text oder einem beliebigen Editor, der UTF-8-Kodierung ohne BOM beibehält). Fügen Sie die folgende Zeile ganz am Ende der Datei hinzu:
<?php
// Temporary password reset — REMOVE IMMEDIATELY AFTER USE
add_action( 'init', function() {
wp_set_password( 'YourNewSecurePassword123!', 1 );
});Ersetzen Sie 'YourNewSecurePassword123!' durch Ihr gewähltes Passwort. Das zweite Argument (1) ist die Benutzer-ID. Wenn Ihr Admin-Konto nicht die ID 1 hat, fragen Sie zuerst die Tabelle wp_users ab, um die korrekte ID zu bestätigen.
Den Aufruf in add_action( 'init', ... ) einzuschließen ist sicherer als wp_set_password() direkt auf der obersten Ebene der Datei aufzurufen, da so sichergestellt wird, dass die WordPress-Kernfunktionen vollständig geladen sind, bevor die Ausführung erfolgt.
Schritt 3: Hochladen und anmelden
Speichern Sie die Datei und laden Sie sie zurück auf den Server hoch, wobei Sie das Original überschreiben. Laden Sie eine beliebige Seite Ihrer WordPress-Website (auch die Startseite), um den Hook init auszulösen und die Passwortänderung auszuführen. Navigieren Sie dann zu /wp-login.php und melden Sie sich mit dem neuen Passwort an.
Schritt 4: Den Code sofort entfernen
Dieser Schritt ist nicht optional. Wenn der Reset-Code in functions.php verbleibt, wird bei jedem Seitenaufruf das Passwort auf den fest codierten Wert zurückgesetzt, was eine kritische Sicherheitslücke darstellt. Laden Sie functions.php erneut herunter, löschen Sie die hinzugefügten Zeilen und laden Sie die Datei erneut hoch.
Methode 3: Passwort über WP-CLI (SSH-Befehlszeile) zurücksetzen
Am besten geeignet für: Entwickler und Systemadministratoren mit SSH-Zugriff auf einen VPS oder dedizierten Server. Dies ist die schnellste und sauberste Methode.
WP-CLI ist die offizielle Befehlszeilenschnittstelle für WordPress. Es kann Benutzer, Plugins, Themes und Datenbankoperationen verwalten, ohne einen Browser zu verwenden. Wenn Sie WordPress auf einem VPS Hosting-Plan oder einem Dedizierten Server betreiben, ist WP-CLI mit ziemlicher Sicherheit verfügbar oder trivial installierbar.
Schritt 1: Überprüfen, ob WP-CLI installiert ist
wp --infoWenn der Befehl nicht gefunden wird, installieren Sie ihn:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpSchritt 2: Zum WordPress-Stammverzeichnis navigieren
cd /var/www/htmlPassen Sie den Pfad an Ihr tatsächliches Dokumentenstammverzeichnis an. Sie können überprüfen, ob Sie sich im richtigen Verzeichnis befinden, indem Sie nach wp-config.php suchen:
ls wp-config.phpSchritt 3: Das Passwort zurücksetzen
wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-rootDas Flag --allow-root ist erforderlich, wenn Sie den Befehl als Benutzer root ausführen. Ersetzen Sie 1 durch die tatsächliche Benutzer-ID, falls erforderlich. Um die korrekte ID zuerst nachzuschlagen:
wp user list --fields=ID,user_login,user_email --allow-rootSchritt 4: Die Aktualisierung bestätigen
WP-CLI gibt nach Abschluss Success: Updated user 1. aus. Sie können die Änderung sofort überprüfen:
wp user get 1 --field=user_pass --allow-rootDies gibt den neuen bcrypt-Hash zurück und bestätigt, dass der Datensatz aktualisiert wurde. Melden Sie sich bei wp-admin an, um den Vorgang abzuschließen.
Sonderfall — Multisite-Installationen: Bei WordPress Multisite stellen Sie dem Befehl --url=yoursite.com voran, um die korrekte Unterseite anzusprechen:
wp user update 1 --user_pass="YourNewSecurePassword123!" --url=yoursite.com --allow-rootMethode 4: Passwort über das WordPress-Notfallskript zurücksetzen
Am besten geeignet für: Szenarien, in denen Sie FTP-Zugriff haben, aber kein SSH, kein phpMyAdmin, und die functions.php-Methode unpraktisch ist (z. B. wenn das aktive Theme ein Block-Theme ohne functions.php ist).
Der WordPress Codex stellt ein eigenständiges PHP-Notfall-Reset-Skript (emergency.php) bereit, das unabhängig von der WordPress-Installation läuft. Es fordert ein neues Passwort an, hasht es korrekt und schreibt es direkt in die Datenbank, wobei die Anmeldedaten aus wp-config.php verwendet werden.
Schritt 1: Das Skript herunterladen
Laden Sie das Skript aus dem offiziellen WordPress-GitHub-Repository oder dem Codex herunter. Die kanonische Quelle ist:
https://codex.wordpress.org/Resetting_Your_Password#Through_the_emergency_password_reset_scriptSpeichern Sie die Datei als emergency.php.
Schritt 2: In das WordPress-Stammverzeichnis hochladen
Laden Sie emergency.php mit Ihrem FTP-Client in dasselbe Verzeichnis hoch, das wp-config.php enthält — in der Regel /public_html/ oder /var/www/html/.
Schritt 3: Das Skript im Browser ausführen
Öffnen Sie einen Browser und navigieren Sie zu:
https://yourdomain.com/emergency.phpDas Skript liest wp-config.php automatisch aus, um Datenbankanmeldedaten zu erhalten, und zeigt dann ein Formular zur Eingabe und Bestätigung eines neuen Passworts an. Senden Sie das Formular ab, um die Änderung anzuwenden.
Schritt 4: Das Skript sofort löschen
Dies ist kritisch. Das Skript hat keine Authentifizierungsebene — jeder, der die URL kennt, kann es verwenden, um Ihr Admin-Passwort zurückzusetzen und die vollständige Kontrolle über Ihre Website zu übernehmen. Löschen Sie es sofort, nachdem Sie wieder Zugriff erlangt haben:
rm /var/www/html/emergency.phpOder löschen Sie es über FTP. Überprüfen Sie die Löschung, indem Sie versuchen, die URL erneut zu laden — sie muss einen 404-Fehler zurückgeben.
Methodenvergleich
| Methode | Erfordert SSH | Erfordert FTP | Erfordert DB-Zugriff | Ändert Theme-Dateien | Geschwindigkeit | Sicherheitsrisiko bei aktiver Nutzung |
|---|---|---|---|---|---|---|
| — | — | — | — | — | — | — |
| phpMyAdmin | Nein | Nein | Ja (über Panel) | Nein | Schnell | Keines |
| `functions.php` über FTP | Nein | Ja | Nein | Ja | Mittel | Kritisch |
| WP-CLI über SSH | Ja | Nein | Nein | Nein | Am schnellsten | Keines |
| Notfallskript | Nein | Ja | Nein | Nein | Mittel | Kritisch |
Sicherheitshärtung nach einem Passwort-Reset
Den Zugriff wiederzuerlangen ist nur der erste Schritt. Ein erzwungener manueller Reset signalisiert oft ein tieferes Problem — ein kompromittiertes Konto, einen falsch konfigurierten Server oder einen defekten Mail-Stack. Beheben Sie diese Probleme sofort:
- Aktuelle Anmeldungen überprüfen. Überprüfen Sie
wp_usermetaaufsession_tokens, um aktive Sitzungen zu sehen. Beenden Sie alle Sitzungen mitwp user session destroy --all --allow-root. - Die geheimen Schlüssel rotieren. Generieren Sie neue Werte unter
https://api.wordpress.org/secret-key/1.1/salt/und ersetzen Sie die entsprechenden Konstanten inwp-config.php. Dadurch werden alle vorhandenen Cookies ungültig. - WordPress-E-Mail-Zustellung reparieren. Installieren Sie ein SMTP-Plugin (WP Mail SMTP, Postman SMTP) und verbinden Sie es mit einem Transaktions-Mail-Dienst (SendGrid, Mailgun, Amazon SES), damit der Standard-Reset-Ablauf in Zukunft funktioniert.
- Zwei-Faktor-Authentifizierung aktivieren. Plugins wie WP 2FA oder Google Authenticator fügen eine zweite Verifizierungsebene hinzu, die Brute-Force-Aussperrungen deutlich unwahrscheinlicher macht.
- Dateiberechtigungen überprüfen.
wp-config.phpsollte640oder600sein. Die Dateifunctions.phpsollte644sein. Weltbeschreibbare Dateien (777) sind ein sofortiges Warnsignal. - Auf nicht autorisierte Admin-Konten prüfen. Führen Sie
wp user list --role=administrator --allow-rootaus und entfernen Sie alle Konten, die Sie nicht erkennen.
Für Produktionsumgebungen, die auf einem Dedizierten Server gehostet werden, überprüfen Sie auch /var/log/auth.log (oder /var/log/secure auf RHEL-basierten Systemen) auf SSH-Brute-Force-Versuche, die der Aussperrung möglicherweise vorausgegangen sind.
Wenn Ihre Website sensible Benutzerdaten oder E-Commerce-Transaktionen verarbeitet, kombinieren Sie Ihre gehärtete Anmeldung mit einem ordnungsgemäß ausgestellten SSL-Zertifikat, um sicherzustellen, dass Anmeldedaten niemals im Klartext übertragen werden.
Entscheidungsmatrix: Welche Methode sollten Sie verwenden?
Verwenden Sie diese Checkliste, um die richtige Methode für Ihre Situation auszuwählen:
- Sie haben cPanel- oder DirectAdmin-Zugriff — verwenden Sie phpMyAdmin (Methode 1). Es ist die sicherste Methode und erfordert keine Dateiänderungen.
- Sie haben FTP/SFTP, aber kein Datenbank-Panel — verwenden Sie
functions.php(Methode 2), aber stellen Sie eine Kalender-Erinnerung ein, um den Code innerhalb von fünf Minuten nach der Anmeldung zu entfernen. - Sie haben SSH-Zugriff auf einen VPS oder dedizierten Server — verwenden Sie WP-CLI (Methode 3). Es ist die sauberste Methode, hinterlässt keinen Restcode und unterstützt Scripting für die Automatisierung.
- Sie haben FTP, aber das aktive Theme hat keine
functions.php(Block-Themes, FSE-Themes) — verwenden Sie das Notfallskript (Methode 4) und löschen Sie es, bevor Sie den Browser-Tab schließen. - Keine der oben genannten Optionen ist verfügbar — wenden Sie sich an das Support-Team Ihres Hosting-Anbieters. Sie können das Datenbankpasswort auf Infrastrukturebene zurücksetzen.
FAQ
F: Werden durch das Zurücksetzen des Passworts über phpMyAdmin aktive Sitzungen abgemeldet?
Nein. Das Ändern von user_pass in der Datenbank macht vorhandene WordPress-Authentifizierungs-Cookies nicht ungültig. Um alle Sitzungen zu beenden, müssen Sie auch die geheimen Schlüssel in wp-config.php aktualisieren oder wp user session destroy --all verwenden.
F: Meine wp_users-Tabelle ist leer oder fehlt. Was ist passiert?
Dies deutet in der Regel auf eine fehlgeschlagene Datenbankmigration, einen beschädigten Import oder ein falsch konfiguriertes $table_prefix in wp-config.php hin. Überprüfen Sie, ob das Präfix mit den tatsächlichen Tabellennamen in phpMyAdmin übereinstimmt. Wenn die Tabelle tatsächlich fehlt, stellen Sie sie aus einem Datenbank-Backup wieder her.
F: Kann ich MD5 in phpMyAdmin verwenden, obwohl WordPress jetzt bcrypt verwendet?
Ja. Die Authentifizierungsschicht von WordPress erkennt MD5-gehashte Passwörter beim Login und akzeptiert sie aus Gründen der Abwärtskompatibilität, hasht das Passwort dann sofort mit dem aktuellen Algorithmus (phpass/bcrypt) neu. Der MD5-Hash wird nur vorübergehend gespeichert, bis zur nächsten erfolgreichen Anmeldung.
F: Der WP-CLI-Befehl wp user update gibt einen Berechtigungsfehler zurück. Wie behebe ich das?
Dies bedeutet in der Regel, dass WP-CLI als ein anderer Systembenutzer ausgeführt wird als derjenige, dem die WordPress-Dateien gehören. Wechseln Sie entweder mit sudo -u www-data wp user update ... zum richtigen Benutzer oder fügen Sie das Flag --allow-root hinzu, wenn Sie als Root arbeiten.
F: Ist es sicher, das Notfallskript für einige Stunden auf dem Server zu belassen?
Nein. Das Notfallskript hat keinerlei Authentifizierung. Jeder Besucher, der die URL entdeckt oder errät, kann es verwenden, um Ihr Admin-Passwort zurückzusetzen und die vollständige Kontrolle über Ihre Website zu übernehmen. Löschen Sie es sofort nach der Verwendung — behandeln Sie es mit derselben Dringlichkeit wie einen exponierten privaten Schlüssel.
