06 / 09 / 2010

SSH Key Autentifikation

Juli 1, 2010 by phil  
Filed under Netzwerk

Um auf ein Linux System mitttels SSH zuzugreifen gibt es mehrere Wege. Der Weg über Passwörter hat immer den fahlen Beigeschmack, dass “sichere” Passwörter verwendet werden müssen um nicht partiell als gehacked zu gelten.

Nun bietet SSH die Mögichkeit sich mit public und private Keys zu authentifizieren, in einer Größe von 128 Bit bis 32.768 Bit. Ich nutze im Normalfall 2048 oder 4096 bit, je nach dem ob der Server intern oder extern steht ;)

Das Tool um Schlüsselpaare zu erzeugen bringt SSH direkt mit. Hier ist zu überlgen, ob die Keys auf dem Host direkt oder aber auf dem Adminclient erzeugt werden. Wenn die Keys auf dem Adminclient erstellt werden, muss sichergestellt sein, dass man evtl. vorhandene Keys nicht überschreibt. (anderern Dateinamen angeben)

ssh-keygen -t rsa -b 2048
... {/Pfad/Dateiname}
...{sicheres Passwort }

Weiterhin muss der enstandene Key auf das entsprechende System übertragen werden:

# cat {/Pfad/Dateiname} | ssh user@remote-system 'umask 077; cat >>.ssh/authorized_keys'

Wenn der Key nun auf dem Server selbst generiert wurde wird für den user ein entspechendes .ssh Verzeichnis im “home” Verzeichnis des Users angelegt.
Bei benutzung der Standarteinstellungen ist im Verzeichnis .ssh die DAtei id_rsa nud id_rsapub zu finden. Um nun den Zugriff zu gewährleisten muss die Datei id_rsa.pub nach authorized_keys kopiert werden.

cat id_rsa.pub > authorized_keys

Weiter muss der private Schlüssel (id_rsa) von der Maschine über einen sicheren Weg wegkopiert und dann geshreddert werden. Denn sonst könnte ein Angreifer den Key vom Server kopieren und hätte Zugang.

... nach dem kopieren auf den Admin Client ...
shred -n 35 id_rsa

Jetzt sollte der erste Zugriff auf das System mittels Key probiert werden. Hierbei kann der parameter -i hilfreichsein

ssh -i /pfad/zum/key/serverkey user@remote-system

Um nun nur noch Zugriff auf den Server mittels Zertifikat zu bekommen sind nur wenige Einstellungen in der /etc/ssh/sshd_config notwendig.

...
# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes
Nach -->
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
...

Danach den Dienst des SSH neu starten

# /etc/init.d/ssh restart

Und schon hört der Server nur noch auf Keyanfragen.

Quellen:
[URL=http://www.schlittermann.de/doc/ssh.html]Schlittermann.de
[URL=http://www.debian-administration.org/article/SSH_with_authentication_key_instead_of_password]Debian Administrator

Related posts:

  1. Neatx – FreeNX server auf Ubuntu 10.04 (Lucid Lynx) Neatx ist eine Open Source Variante des kommerziellen NX Servs...

Ähnliche Artikel bereitgestellt von Yet Another Related Posts Plugin.

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!