SSH Key Authentication only ESXi 4.1
SSH mit Passwortauthentifizierung gilt als äußerst bedenklich, vor allem wenn dieses global aus dem Internet erreichbar ist. Der unterdessen nicht mehr ganz aktuelle ESXi 4.1 kann jedoch mit wenigen Handgriffen auch mit Keyfile konfiguriert werden. Wie das geht, erfahrt ihr hier in diesem Artikel.
Vorbereitungen
Ich gehe davon aus, dass ihr mit bereits einen SSH-Key erzeugt habt. Falls nicht, könnt ihr das unter Ubuntu mit folgendem Befehl nachholen:
$ ssh-keygen -t rsa
Anschließend könnt ihr den Key auf den entfernten Server übertragen:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx
Die Anmeldung via Key-File könnt ihr so überprüfen:
$ ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/id_rsa
ESXi 4.1
Um einen Sicherheitsgewinn zu bekommen, müssen wir aber die Passwortauthentifizierung deaktivieren. Das muss direkt über SSH oder Console am Hypervisor vorgenommen werden.
inetd.conf
Um die Passwortauthentifizierung zu deaktivieren müssen wir -s in der /etc/inetd.conf ergänzen, sodass die Zeile wie folgt aussieht:
# Internet server configuration database # Remote shell access ssh stream tcp nowait root /sbin/dropbearmulti dropbear ++min=0,swap,group=shell -i -s -K60
Damit die Änderung übernommen wird muss inetd gekillt und neugestartet werden:
$ ps aux | grep inetd 16091017 16091017 busybox inetd $ kill 16091017 $ inetd
bootbank
Damit das authorized_keys nicht nach dem Neustart verloren geht, muss ein kleines tar-Paket gebaut werden, welches nach dem Reboot wieder an der richtigen Stelle entpackt wird:
$ tar -C / -czf "/bootbank/home.tgz" /.ssh
Anschließend das File /bootbank/boot.cfg bearbeiten und "--- home.tgz" am Ende hinzufügen:
cat /bootbank/boot.cfg kernel=b.z kernelopt= modules=k.z --- s.z --- c.z --- oem.tgz --- license.tgz --- m.z --- state.tgz ---home.tgz build=4.1.0-800380 updated=7 bootstate=0