SSH Key Authentication only ESXi 4.1

Aus Cowwwiki
Wechseln zu: Navigation, Suche

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


Quellen

http://plone.lucidsolutions.co.nz/linux/vmware/esxi/enabling-ssh-with-public-key-authentication-on-vmware-esxi-4