vCenter Server Appliance root-Passwort und SSO-Passwort vergessen

Blöd ist es, wenn man das Passwort des SSO-Administrators der vCenter Server Appliance (vCSA) vergessen hat. Das lässt sich allerdings zurücksetzen, solange man noch Zugriff auf die Konsole der Appliance hat. Das erfordert das Root-Passwort - hat man dieses auch vergessen, ist das doppelt blöd. Doch leider passiert auch das zuweilen in manchen Lab-Umgebungen.

In einem solchen Fall benötigt man eine Linux Live-CD (beispielsweise Clonezilla oder Knoppix) und eine kurze Downtime, um das Problem zu lösen.

Die Konfiguration der VM muss angepasst werden, sodass diese von der ISO bootet (ISO beim Booten einhängen, Bootreihenfolge ändern bzw. Boot-Menü aufrufen).

Sobald das Linux-System gestartet ist, muss die 3.Partition der vCSA-Festplatte eingehängt werden. Je nach Linux-Distribution variieren hier die Gerätedateien - daher unbedingt einen Blick auf die Ausgabe des lsscsi-Kommandos werfen.

1# lsscsi
2# mount /dev/sda3 /mnt

Anschließend wird eine Sicherheitskopie der Datei /etc/shadow erstellt und der Eintrag für root in dieser Datei angezeigt:

1# cp /mnt/etc/shadow /mnt/etc/shadow.old
2# grep root /mnt/etc/shadow
3root:$6$**cVgMY7af**$XZSSEKvitiqwUaLFZ4QVKEQ1El/Fra2TUFDHDFk1O8eu4aMQo0WfYrA5tVe7OAB4d2z442OIYkqH5BhGV9Vtr.::0:99999:7:::

Der hier rot markierte Bereich ist der Hash des Passworts. Mithilfe des folgenden Python-Aufrufs lässt sich ein neues mit diesem Hash verschüsseltes Passwort generieren:

1$ python -c "import crypt, getpass, pwd; print crypt.crypt('MyPassword', '$6$SALT$')"

Also in diesem Beispiel:

1$ python -c "import crypt, getpass, pwd; print crypt.crypt('MyPassword', '$6$**cVgMY7af**$')"
2$6$cVgMY7af$3Yzu1Q6Wgl58hmxTtwO/N9INm5NWHRWEjKg7kRcwHYDpWcMPU935vaZSq6pq6DdT2pekU7rQ325vpZI1RIgNw.

Den Inhalt dieser Zeile muss man nun wieder in die Datei /etc/shadow einarbeiten:

1root:$6$cVgMY7af$3Yzu1Q6Wgl58hmxTtwO/N9INm5NWHRWEjKg7kRcwHYDpWcMPU935vaZSq6pq6DdT2pekU7rQ325vpZI1RIgNw.::0:99999:7:::

Nach einem Reboot der vCSA sollte eine Verbindung per SSH hergestellt werden können. Um nun das Passwort des SSO-Administrators zurückzusetzen, genügen die folgenden Kommandos sofern sich auf der vCSA auch der Platform Services Controller (PSC) befindet:

 1Command> shell.set --enabled True
 2Command> shell
 3    ---------- !!!! WARNING WARNING WARNING !!!! ----------
 4...
 5my-vcsa:~ # /usr/lib/vmware-vmdir/bin/vdcadmintool
 6
 7==================
 8Please select:
 90. exit
101. Test LDAP connectivity
112. Force start replication cycle
123. Reset account password
134. Set log level and mask
145. Set vmdir state
15==================
16
173
18  Please enter account UPN : administrator@vsphere.local
19New password is -
20&/()32I'mDumb48730

Anschließend sollte man das Passwort ändern und entsprechend notieren, damit das nicht nochmal passiert...

Übersetzungen: