15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
21.10.2024

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-Zustellungwp_mail() hängt von der mail()-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

  1. Suchen Sie die Zeile, in der user_login mit Ihrem Admin-Benutzernamen übereinstimmt. Bei den meisten Standardinstallationen ist dies die Zeile mit ID = 1.
  2. Klicken Sie auf Bearbeiten (das Bleistift-Symbol).
  3. Suchen Sie das Feld user_pass.
  4. Wählen Sie im Dropdown-Menü Funktion neben user_pass die Option MD5.
  5. Geben Sie im Feld Wert Ihr neues Passwort im Klartext ein.
  6. 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 --info

Wenn 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/wp

Schritt 2: Zum WordPress-Stammverzeichnis navigieren

cd /var/www/html

Passen 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.php

Schritt 3: Das Passwort zurücksetzen

wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-root

Das 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-root

Schritt 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-root

Dies 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-root

Methode 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_script

Speichern 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.php

Das 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.php

Oder 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

MethodeErfordert SSHErfordert FTPErfordert DB-ZugriffÄndert Theme-DateienGeschwindigkeitSicherheitsrisiko bei aktiver Nutzung
phpMyAdminNeinNeinJa (über Panel)NeinSchnellKeines
`functions.php` über FTPNeinJaNeinJaMittelKritisch
WP-CLI über SSHJaNeinNeinNeinAm schnellstenKeines
NotfallskriptNeinJaNeinNeinMittelKritisch

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_usermeta auf session_tokens, um aktive Sitzungen zu sehen. Beenden Sie alle Sitzungen mit wp 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 in wp-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.php sollte 640 oder 600 sein. Die Datei functions.php sollte 644 sein. Weltbeschreibbare Dateien (777) sind ein sofortiges Warnsignal.
  • Auf nicht autorisierte Admin-Konten prüfen. Führen Sie wp user list --role=administrator --allow-root aus 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.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen