/dev/blog/ID10T

ESXi: SSH Authentication per Public Key

• Administration and Linux • Comments
Advertisement

SSH auf einem VMware ESXi-Server zu aktivieren ist inzwischen sehr einfach. Leider kommt man damit alleine noch nicht sonderlich weit, da eine Authentisierung per Public Key im abgespeckten ESXi nicht ohne einige kleinere Konfigurationen funktioniert. Um also eine Public Key Authentication auf einem ESXi zu aktivieren, geht wie folgt vor:

  1. Erstellt einen .ssh-Ordner im Root Verzeichnis
    mkdir /.ssh 
  2. In diesem Ordner brauchen wir eine Datei authorized_keys mit exklusiven Rootrechten.
    touch /.ssh/authorized_keys && chmod 600 /.ssh/authorized_keys
  3. In der eben erstellten authorized_keys könnt ihr nun eure Public Keys einfügen.

Damit wäre ein SSH mit Pubkey Authentication grundsätzlich schon lauffähig, allerdings würde diese Konfiguration einen Neustart nicht überleben, da der ESXi das System beim Neustart auf einen ihn bekanntem Status zurücksetzt.
Um dies zu verhindern, müssen wir den eben angelegten Ordner und die darin befindliche Datei in diesen Status integrieren.

  1. Dazu komprimieren wir den .ssh-Ordner und seinen Inhalt zu einem tgz und packen es in den /bootbank-Ordner, aus dem der ESXi seine Einstellungen zurückspielt.
    tar -C / -czf "/bootbank/ssh.tgz" /.ssh
  2. Anschließend editieren wir die boot.cfg in diesem Ordner und fügen die ssh.tgz als letzten Parameter unter dem Punkt Modules ein. Beachtet dabei, dass jeder Paramter mit drei Bindestrichen getrennt wird.
    vi /bootbank/boot.cfg
  3. Die boot.cfg sollte anschließend ungefähr so aussehen:
    kernel=b.z
    kernelopt=
    modules=k.z --- s.z --- c.z --- oem.tgz --- license.tgz --- m.z --- state.tgz --- rsync.tgz --- ssh.tgz
    build=4.1.0-348481
    updated=1
    bootstate=0

    Ich habe zusätzlich noch eine rsync.tgz eingebunden.

    Jetzt funktioniert eine Pubkey Authentisierung auch nach dem Neustart noch. Allerdings müsst ihr jedes Mal, wenn ihr die authorized_keys-Datei verändert - etwa um einen neuen Schlüssel hinzuzufügen oder einen alten zu entfernen, die ssh.tgz neu erstellen, da die Änderungen sonst nach einem Neustart verloren gehen.

Advertisement
More posts
comments powered by isso

Advertisement