Agentur für Neue Medien


Sicheren SSH-Zugang mit der Public-Key-Authentifizierung auf einem Plesk-Server

Mit der Public-Key-Authentifizierung kann man einen sicheren SSH-Zugang einrichten, der sogar ganz ohne Passwort funktioniert. Grundsätzlich funktioniert das so, dass man auf dem Client-Rechner ein Schlüssel-(Key)-Paar erzeugt, dass aus einem öffentlichen (Public-)Key und einem privaten (Private-)Key besteht. Anschließend wird der Public-Key auf dem Plesk-Server hinterlegt. Bei einem SSH-Login wird dann überprüft ob der Public- und der Privat-Key zusammenpassen und nur wenn das der Fall ist, bekommt man Zugang.

Bei der Erstellung des Key-Paares kann man optional auch noch angeben, ob man zusätzlich auch noch ein Passwort angeben muss, oder ob der Login auch ohne Passwort funktioniert - dann sollte man allerdings dafür sorgen, dass der Privat-Key auch wirklich nicht in falsche Hände gerät!

Im Folgenden werde ich beschreiben, wie eine solche Public-Key-Authentifizierung zwischen einem Mac und einem Plesk-Server erstellt wird. Auf einem Windows-PC funktioniert das grundsätzlich gleich - allerdings müssen Sie sich dann noch ein Programm zur Erstellung des Schlüssel-Paares aus dem Internet herunterladen (meine Empfehlung: das kostenlose Programm PuttyGen).

1. Schritt: Erstellung des Key-Paares

Falls Sie bisher noch kein Key-Paar erstellt haben, starten Sie auf Ihrem Mac das Terminal-Programm und erstellen Sie den versteckten Ordner /.ssh/ und passen die Rechte an in dem Sie folgende Befehle ausführen:

mkdir ~/.ssh
chmod 700 ~/.ssh

Dann erstellen Sie das Key-Paar mit folgendem Befehl:

ssh-keygen -q -f ~/.ssh/id_rsa -t rsa

Anschließend wird nach einem Passwort gefragt. Wenn man das Passwort jedoch einfach leer läßt, funktioniert der SSH-Zugang dann auch ohne Passwort! Meine Empfehlung wäre jedoch, zumindest ein einfaches Passwort anzugeben, da im Falle, dass der Privat-Key ausspioniert wurde, dann trotzdem noch eine gewisse Sicherheit besteht.

2. Schritt: Public-Key auf den Server kopieren

Mit folgendem Befehl wird nun der Public-Key auf den Server kopiert:

cat ~/.ssh/id_rsa.pub | ssh root@mein-server.de 'cat >> .ssh/authorized_keys'

Statt "root" kann man natürlich auch einen anderen existierenden User auf dem Server angeben, um ihm einen SSH-Zugang einzurichten. Der obige Befehl setzt voraus, dass der Ordner /.ssh für den entsprechenden User bereits existiert - sollte das jedoch noch nicht der Fall sein kann man den Befehl auch wie folgt abwandeln:

cat ~/.ssh/id_rsa.pub | ssh root@mein-server.de 'mkdir .ssh; cat >> .ssh/authorized_keys'

Damit wären wir eigentlich schon fertig.

3. Schritt: Passwort-Authentifizierung abschalten und Port verlegen

Sinnvoll wäre es aber noch, den Login mit Passwort-Authentifizierung ganz abzuschalten und nur noch den Login mit Public-Key-Authentifizierung zuzulassen!
Dazu werden folgende Änderungen in der Datei /etc/ssh/sshd_config vorgenommen:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Außerdem wäre es noch empfehlenswert den SSH-Port von 22 auf einen anderen freien Port (z.B. 11022) zu verlegen (Achtung, nicht vergessen den Port in der Firewall zu öffnen!). Dazu trägt man in die Datei /etc/ssh/sshd_config auch noch folgendes ein:

Port 11022

Dann noch SSH neu starten mit /etc/init.d/ssh reload , damit die Änderungen aktiv werden und Daumen drücken, dass alles geklappt hat! ;)

Abschließend kann man den Port 22 in der Firewall auch noch dicht machen.

Fehlersuche:

Der häufigste Fehler dürften wohl falsch gesetzte Rechte im Verzeichnis /.ssh/ sein. Die korrekten Rechte werden wie folgt gesetzt:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

 

comments powered by Disqus

Copyright SKom 2006

Ecke rechts unten