Sie können die schlüsselbasierte SSH-Authentifizierung konfigurieren, um sich bei VMware ESXi-Hosts anzumelden, anstatt ein Benutzername-Passwort-Paar zu verwenden. Dies kann nützlich sein, wenn Sie einen ESXi-Host mithilfe externer Skripts remote verwalten müssen (z. B. um bei einem Stromausfall der USV einen Befehl zum Herunterfahren an ESXi zu senden) oder wenn Sie VMware ESXi-Hosts mit Ansible verwalten müssen.
Generieren Sie private und öffentliche Schlüssel auf dem Computer des Administrators. Verwenden Sie RSA-Schlüssel mit einer Mindestlänge von 4096 Bit. Führen Sie den Befehl aus, um unter Windows ein RSA-Schlüsselpaar mit der Länge 4096 zu generieren
ssh-keygen -t rsa -b 4096
Erfahren Sie mehr über die schlüsselbasierte SSH-Authentifizierung unter Windows.
Lesen Sie auch:PowerShell: Zertifikatbasierte Authentifizierung für Exchange Online (Azure) konfigurieren


Es wird empfohlen, in neuen OpenSSH-Builds das Ed25519-Protokoll anstelle von RSA-Schlüsseln zu verwenden (verwenden Sie RSA/SHA256, wenn Sie die Verwendbarkeit privater Schlüssel testen, da einige Systeme beginnen, RSA/SHA1 in libcrypto zu deaktivieren). In ESXi 8.0 konnte ich nach der Deaktivierung des Schlüsselpaars Ed25519 nur eine SSH-Verbindung herstellenFipsMode noOption in/etc/ssh/sshd_config.
Führen Sie Folgendes aus, um Ed25519-Schlüssel (id_ed25519 und id_ed25519.pub) zu generieren:
ssh-keygen -t ed25519
Das Dienstprogramm erstellt zwei Dateien im Profilverzeichnis des aktuellen Benutzers (%USERPROFILE%\.ssh):
- id_rsa– privater Schlüssel
- id_rsa.pub– öffentlicher (offener) Schlüssel
Wenn Sie das Puttygen-Tool zum Generieren von Schlüsseln verwenden, müssen Sie diese im OpenSSH-Format exportieren.
Kopieren Sie den öffentlichen Schlüssel (id_rsa.pub) von Ihrem Computer auf den VMware ESXi-Host. Dieser Schlüssel muss der Datei hinzugefügt werden/etc/ssh/keys-$USER/authorized_keys. Wenn es sich um einen Schlüssel für den Root-Benutzer handelt, lautet der Pfad zur Datei wie folgt:/etc/ssh/keys-root/authorized_keys.
Stellen Sie über SSH eine Verbindung zum ESXi-Server her.
Sie können die Datei manuell bearbeiten (Sie können mehrere Schlüssel in einer Datei speichern) oder sie mit dem PowerShell-Befehl zum ESXi-Server hinzufügen:
cat c:\users\admin\.ssh\id_rsa.pub | ssh [email protected] 'cat >> /etc/ssh/keys-root/authorized_keys'


Der /etc/ssh/sshd_configDie Datei enthält den OpenSSH-Server auf dem ESXi-Host.
Verwenden Sie diese Option, um den Root-Zugriff zu aktivieren oder zu deaktivieren:
PermitRootLogin yes
SSH-Passwortanmeldungen deaktivieren:
ChallengeResponseAuthentication no # deprecated KbdInteractiveAuthentication no PasswordAuthentication no


Starten Sie den SSH-Server auf ESXi neu:
# /etc/init.d/SSH restart
Sie können auch verwendenVMware-Hostprofileum offene SSH-Schlüssel auf ESXi-Hosts bereitzustellen (Sicherheitskonfiguration -> SSH-autorisierter Schlüssel für Root-Benutzer -> Öffentlichen Schlüssel hinzufügen)


Sie können sich nun ohne Passwort mit dem privaten Schlüssel mit dem ESXi-Host verbinden. Auf Windows-Computern mit aktiviertem SSH-Agent wird beim Herstellen einer Verbindung zum Host automatisch der private Schlüssel aus dem Benutzerprofil verwendet:
ssh [email protected]


Sie können auch den Parameter -i verwenden, um den Pfad zum privaten Schlüssel anzugeben:
ssh [email protected] -i "C:\Users\administrator\.ssh\id_rsa"
Jetzt können Sie jeden Befehl remote in der ESXi-Konsole ausführen. Fahren Sie beispielsweise eine bestimmte virtuelle Maschine herunter:
ssh [email protected] vim-cmd vmsvc/power.shutdown VMID











