Zurücksetzen eines ESXi-Root-Passworts


7

Ich habe gerade ein sehr einfaches VM-Setup mit zwei gruppierten ESXi-Servern geerbt, und alles ist ziemlich gut miteinander verbunden. Das Problem ist, dass ich keine Root-Passwörter für die Server habe und niemand eine Ahnung hat, was sie sind (das Erraten von Passwörtern wurde versucht).

Nach meinem Verständnis verfügt ESXi nicht über einen Einzelbenutzermodus oder etwas Ähnliches. Was sind meine Optionen, um die VMs zu sichern und die Site zu zerstören?


3
Ich weiß, dass Sie dies gerade geerbt haben und der Verlust / das Fehlen des Root-Passworts nicht Ihre Schuld ist, aber WOW! Wie passiert das?
Joeqwerty

1
@ Joeqwerty, leicht, niemand schreibt Dinge auf.
Daniel Goldberg

Antworten:


9

Für ESXi ist die einzige unterstützte Methode zum Ändern des Kennworts die Neuinstallation.

Die Neuinstallation des ESXi-Hosts ist die einzige unterstützte Möglichkeit, ein Kennwort unter ESXi zurückzusetzen. Jede andere Methode kann aufgrund der Komplexität der ESXi-Architektur zu einem Hostfehler oder einer nicht unterstützten Konfiguration führen. ESXi verfügt nicht über eine Dienstkonsole. Daher gelten herkömmliche Linux-Methoden zum Zurücksetzen eines Kennworts, z. B. der Einzelbenutzermodus, nicht.

Wenn Sie zwei Hosts haben und diese über die Ressourcen verfügen, um dies zu unterstützen, können Sie vMotion (und / oder Storage vMotion) die Server alle auf einem einzelnen Host speichern, den leeren Host entfernen und neu erstellen und ihn wieder dem Cluster hinzufügen. Verschieben Sie dann alle Gäste auf den neu erstellten Host und entfernen Sie den verbleibenden Host. Auf diese Weise können Sie eine Wiederherstellung durchführen, ohne dass die Gäste Ausfallzeiten haben. Abhängig von Ihrer Infrastruktur und der Anzahl der zu verschiebenden virtuellen Maschinen sollte die Wiederherstellung der beiden Hosts weniger als einen Tag dauern, es sei denn, Sie verfügen über eine außergewöhnlich große oder komplexe Hostkonfiguration.

Wenn Sie eine ältere Version von ESXi verwenden, ist dies auch ein guter Zeitpunkt, um Ihre aktuelle Hardware mit der HCL zu vergleichen und bei Bedarf auf die neueste Version zu wechseln (natürlich nach dem Upgrade Ihres vCenter-Servers).

In Bezug auf nicht unterstützte Methoden werde ich erwähnen, aber nicht unbedingt raten.

  • Verwenden Sie vCenter, um jeden Host mit einer AD-Domäne zu verbinden, einen AD-Benutzer als Administrator für den Host einzurichten und zu konfigurieren und die AD-Authentifizierung zuzulassen. Verwenden Sie den vSphere-Client, um mithilfe von AD-Anmeldeinformationen für die Anmeldung eine direkte Verbindung zum Host herzustellen. Sobald Sie auf diese Weise verbunden sind, sollten Sie in der Lage sein, das Kennwort für das Root-Konto über den vSphere-Client zu ändern, der direkt mit dem Host verbunden ist. Ich habe das zur Not benutzt und es funktioniert.
  • Generieren Sie ein Hostprofil, das das Kennwort angibt, und hängen Sie es an den Host an. Dies ist möglich, erfordert jedoch weiterhin, dass der Host in den Wartungsmodus versetzt wird. Ich habe diese Methode nicht persönlich angewendet.

10

Es gibt Methoden zum Zurücksetzen des Root-Passworts eines ESXi-Hosts, sofern Sie physischen oder Out-of-Band-Zugriff auf den Server haben.

  • Ich habe dies mit Hostprofilen getan, indem ich das von einem anderen Host ermittelte Profil erneut auf den betroffenen Server angewendet habe. Aber Sie haben wahrscheinlich nicht die Lizenz, um dies zu unterstützen.
  • Ich muss auch den Boot-CD / Live-CD-Ansatz ( auch hier ) verwenden, der einige Linux-Kenntnisse voraussetzt und das Festlegen eines leeren Kennworts oder eines bekannten verschlüsselten Kennworts in der Schattendatei umfasst.

Wie das passieren kann ... Schlechte Dokumentation, böse gekündigte Administratoren, ein Rechenzentrumstechniker, der CAPS-LOCK beim Erstellen der Server eingeschaltet hat, mein schlechtes Gedächtnis usw. :)


1
Ich habe nie gesagt, dass es keine anderen Methoden gibt - nur, dass die einzige offiziell unterstützte Methode für ESXi die Neuinstallation ist. :) Ich habe den BootCD-Ansatz noch nicht gesehen, aber die Host-Profilmethode schon einmal gesehen. Ich habe in meiner Antwort unten eine zusätzliche Methode hinzugefügt, die ich zuvor verwendet habe. Die Lizenzierung mit Hostprofilen kann ebenfalls umgangen werden. Nehmen Sie einen Testlizenzschlüssel und wenden Sie ihn für die erforderliche Dauer an. Wenden Sie anschließend Ihren vollständigen Schlüssel erneut an, nachdem Sie fertig sind.
Rex

Ich habe die andere Antwort als "offizielle" hinzugefügt, aber das wird mir tatsächlich helfen, wenn die Chefs dies abzeichnen. Vielen Dank.
Daniel Goldberg

@ DanielGoldberg Gern geschehen.
ewwhite

1

Das ESXi-Root-Passwort wird verschlüsselt und in einer Datei mit dem Namen / ect / shadow gespeichert. Genau wie in diesem Artikel erläutert, können Sie das Root-Passwort mit den folgenden Schritten entfernen:

  1. Starten Sie Ihren Server von der Ubuntu Live-CD.
  2. Entpacken Sie die Datei state.tgz und dann local.tgz, löschen Sie den Kennwort-Hash in der Schattendatei und packen Sie das Archiv neu.
  3. Danach können Sie sich ohne Passwort am ESXi-Host als Root-Konto anmelden.

1
-1 Dies fügt nichts hinzu, was nicht bereits durch die beiden 8 Monate alten Antworten hier abgedeckt ist.
Rob Moir

1
@RobM ist anderer Meinung, und Google auch nicht. Keine der vorhandenen Antworten enthält explizite Anweisungen. Googles eigener Algorithmus für maschinelles Lernen hat diese Antwort über die anderen gewählt, um die Frage zu beantworten, die sich aus der Abfrage "Esxi-Root-Passwort zurücksetzen" (keine Anführungszeichen)
ergibt

-3

Für ESXi 6 arbeiten für mich:

# https://www.linkedin.com/pulse/reset-esxi-root-password-through-vcenter-esxcli-method-buschhaus
#First, setup $vmhosts. You can do this many ways.$vmhosts = Get-Cluster -Name ClusterWithUnknownPassword | Get-VMHost

# Just so it contains one or more VMHost objects.
# To reset all ESXi host passwords use
# $vmhosts = Get-VMHost

$NewCredential = Get-Credential -UserName "root" -Message "Enter an existing ESXi username (not vCenter), and what you want their password to be reset to."

Foreach ($vmhost in $vmhosts) {
    $esxcli = get-esxcli -vmhost $vmhost -v2 #Gain access to ESXCLI on the host.
    $esxcliargs = $esxcli.system.account.set.CreateArgs() #Get Parameter list (Arguments)
    $esxcliargs.id = $NewCredential.UserName #Specify the user to reset
    $esxcliargs.password = $NewCredential.GetNetworkCredential().Password #Specify the new password
    $esxcliargs.passwordconfirmation = $NewCredential.GetNetworkCredential().Password
    Write-Host ("Resetting password for: " + $vmhost) #Debug line so admin can see what's happening.
    $esxcli.system.account.set.Invoke($esxcliargs) #Run command, if returns "true" it was successful.
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.