So setzen Sie das Root-Passwort auf VMware ESXi zurück

Wer schon einmal sein Root-Passwort auf VMware ESXi vergessen hat, weiß, wie frustrierend das sein kann. Der offizielle Weg ist normalerweise eine vollständige Neuinstallation, was übertrieben erscheint, wenn man nur schnell wieder Zugriff benötigt. Denn laut VMware-Dokumentation ist die einzige unterstützte Methode zum Zurücksetzen des Root-Passworts das Löschen und Neuinstallieren ( hier ist der Link ).Es ist jedoch ziemlich ärgerlich, alle Einstellungen und VMs zu verlieren, nur um das Passwort zu korrigieren – insbesondere, wenn man nicht alles von Grund auf neu konfigurieren möchte. Glücklicherweise gibt es eine etwas weniger radikale Option: die Verwendung einer Linux-Live-CD, um auf den Host zuzugreifen und das Passwort zu ändern. Nicht so einfach wie ein schneller BIOS-Reset, aber durchaus machbar – und bei manchen Konfigurationen funktioniert es einwandfrei. Zugegeben, es ist etwas technisch und erfordert das Mounten von Partitionen und das Bearbeiten von Dateien, aber wer mit Terminalbefehlen vertraut ist, kann sein Root-Passwort ohne Neuinstallation wiederherstellen. Und noch eine Möglichkeit, falls Sie vCenter mit Enterprise Plus-Lizenzen verwenden: Das Passwort lässt sich über VMware-Hostprofile zurücksetzen, ein Neustart ist nicht erforderlich. Beginnen wir aber mit der Methode über die Live-Disk, da diese recht weit verbreitet ist.

So setzen Sie das ESXi-Passwort mithilfe einer Linux-Live-CD zurück

Diese Methode basiert auf der Bearbeitung der Shadow-Datei, in der Linux- und Unix-basierte Systeme die Hashes der Benutzerpasswörter speichern. Die Passwörter von ESXi befinden sich in `/etc/shadow` innerhalb des VMFS- oder NFS-Speichers. Daher müssen Sie diese Dateien einbinden und bearbeiten. Der Grund dafür ist, dass Sie durch Löschen oder Ersetzen des Hashs das Passwort quasi auf leer setzen und sich so wieder Zugriff verschaffen. Es ist zwar etwas ungewöhnlich, aber eine Möglichkeit, die offizielle Beschränkung zu umgehen. Seien Sie jedoch gewarnt: Diese Methode wird nicht offiziell unterstützt. Sie handeln daher auf eigenes Risiko und erstellen Sie nach Möglichkeit immer Backups.

Die Grundidee: Von einer Linux-Rettungsdiskette booten, die ESXi-Partitionen finden, diese einhängen, dann die /etc/shadowDatei im Archiv öffnen und den Root-Passwort-Hash löschen. Anschließend alles neu packen, neu starten und voilà – man kann sich mit einem leeren Passwort anmelden. Klingt kompliziert? Ist es auch. Aber es hat auf mehreren Rechnern funktioniert, also ist es einen Versuch wert, falls man nicht weiterkommt. Wichtig: Die genauen Partitionen können je nach ESXi-Version variieren. Normalerweise sucht man bei ESXi 7.x und höher nach /dev/sda5 (Bootbank) und /dev/sda6 (Altrbootbank), die beide etwa 1 GB groß sind. Bei älteren Versionen sind sie kleiner.

So setzen Sie das ESXi-Passwort mithilfe einer Linux-Live-CD zurück

Starten Sie im Linux-Wiederherstellungsmodus und mounten Sie die Dateisysteme.

  • Laden Sie eine Linux-Rettungsdistribution wie Ubuntu Live oder SystemRescueCD herunter und brennen Sie sie auf einen USB-Stick. Starten Sie Ihren Rechner von dieser CD oder diesem USB-Stick. Warum das funktioniert, ist mir nicht ganz klar, aber es hilft, eine Distribution mit guten Tools und Unterstützung für das Einbinden von VMFS- oder NFS-Freigaben zu verwenden.
  • Öffnen Sie Ihr Terminal und listen Sie Ihre Festplattenpartitionen mit # fdisk –ldem Befehl `disk –partitions` auf. Suchen Sie die Partitionen `/dev/sda5` und `/dev/sda6`. Bei manchen Systemen sind sie größer (ca.1 GB), bei anderen kleiner (ca.250 MB).Sie enthalten die Betriebssystemdateien und Konfigurationsdateien.

Die relevanten Partitionen einbinden

  • Verzeichnisse zum Einbinden erstellen:
  • # mkdir /mnt/sda5 /mnt/sda6 /temp
  • Mounten Sie die Haupt-Bootpartition:
  • # mount /dev/sda5 /mnt/sda5
  • Kopieren Sie die Archivdateien zum Bearbeiten:
  • # cp /mnt/sda5/state.tgz /temp
  • # cd /temp

Schattendatei extrahieren und bearbeiten

  • Archiv entpacken:
  • # tar xzf state.tgz
  • Im Inneren finden Sie die Datei local.tgz – entpacken Sie diese ebenfalls:
  • # tar xzf local.tgz
  • Nun sehen Sie den Ordner /etc. Verwenden Sie einen Texteditor wie nano oder vi, um die Shadow-Datei zu bearbeiten:
  • # nano /temp/etc/shadow

Suchen Sie die Zeile für den Root-Benutzer. Sie sollte etwa so aussehen: root:$6$salt$hash:…. Um ein leeres Passwort festzulegen, löschen Sie den Hash-Teil nach dem ersten Doppelpunkt. Die Zeile sieht dann so aus: root::…. Wenn Sie dies speichern, kann sich der Root-Benutzer ohne Passwort anmelden.

Dateien neu packen und ersetzen

  • Speichern Sie Ihre Änderungen und löschen Sie anschließend alle alten TGZ-Dateien:
  • # rm *.tgz
  • Archive wiederherstellen:
  • # tar czf local.tgz etc
  • # tar czf state.tgz local.tgz
  • Kopieren Sie die geänderte state.tgz-Datei zurück auf die ESXi-Partition:
  • # mv /temp/state.tgz /mnt/sda5
  • Alles demontieren:
  • # umount /mnt/sda5

Die gleiche Vorgehensweise gilt für /dev/sda6, falls Sie dort ebenfalls das Passwort zurücksetzen müssen. Starten Sie anschließend Ihren Host neu. Wenn alles geklappt hat, sollten Sie sich mit einem leeren Root-Passwort anmelden können. Legen Sie nach dem Anmelden aber so schnell wie möglich ein sicheres Passwort fest.

ESXi-Root-Passwort mithilfe von VMware-Hostprofilen zurücksetzen

Wenn Sie vCenter zur Hostverwaltung nutzen und über eine Enterprise Plus-Lizenz verfügen, gibt es eine komfortablere Methode – ganz ohne Neustart. Sie können ein Profilupdate durchführen, um ein neues Root-Passwort festzulegen. Diese elegantere und unterstützte Methode erfordert jedoch etwas Konfigurationsaufwand.

  • Stellen Sie eine Verbindung zu vCenter her und navigieren Sie dann zu Richtlinien und Profile > Hostprofile. Wählen Sie „Hostprofil von Ihrem Host extrahieren“.
  • Geben Sie der Datei einen aussagekräftigen Namen und bearbeiten Sie sie anschließend: Gehen Sie zu Sicherheit > Benutzerkonfiguration > Stammverzeichnis.
  • Aktualisieren Sie das Passwort in der Konfiguration für feste Passwörter.
  • Wenden Sie das Profil auf Ihren Host an – vorzugsweise im Wartungsmodus (Host > Wartungsmodus > Wartung aufrufen).
  • Klicken Sie auf „Beheben“. Der Host wendet die Profileinstellungen an und setzt das Passwort zurück, ohne neu zu starten.
  • Sobald dies abgeschlossen ist, beenden Sie den Wartungsmodus und schalten Sie Ihre VMs wieder online.

Diese Methoden sind zwar nicht ganz unkompliziert, funktionieren aber, wenn Sie mit dem Terminal, dem Einbinden von Dateisystemen und dem Bearbeiten von Konfigurationsdateien vertraut sind.Ändern Sie Ihr Passwort unbedingt sofort nach dem Wiedererlangen des Zugriffs – ein leeres Root-Passwort ist keine gute langfristige Lösung. Diese Tricks scheinen jedoch mit den meisten ESXi-Versionen zu funktionieren und ersparen Ihnen viel Ärger, falls eine Neuinstallation nicht infrage kommt. Wichtig: Diese Vorgehensweise wird nicht offiziell unterstützt, daher ist Vorsicht geboten. Im Notfall ist sie aber eine zuverlässige Methode, um die Kontrolle über einen gesperrten ESXi-Host wiederzuerlangen.

Zusammenfassung

  • Starten Sie von einem Linux-Rettungsmedium und identifizieren Sie Ihre ESXi-Partitionen.
  • Die entsprechende Partition einbinden, das Passwortarchiv entpacken und die Schattenkopiedatei bearbeiten.
  • Löschen Sie den Root-Hash und packen Sie alles neu.
  • Starten Sie das Gerät neu und melden Sie sich mit einem leeren Passwort an.
  • Bei Verwendung von vCenter sollten Sie Hostprofile für einen unterstützten Reset in Betracht ziehen, der keinen Neustart erfordert.

Zusammenfassung

Natürlich ist das Bearbeiten von VMFS und Systemdateien nicht ganz einfach, aber mit Linux-Kenntnissen und Erfahrung mit der Kommandozeile durchaus effektiv. Hoffentlich erspart das jemandem eine Neuinstallation oder bietet zumindest eine alternative Lösung. Ich verstehe nicht, warum VMware das Zurücksetzen von Passwörtern so kompliziert macht, aber was soll man machen?