Richten Sie die schlüsselbasierte SSH-Authentifizierung auf VMware ESXi ein

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

Related Posts