SSH absichern

Mein root Server bei Hetzner nutzt schon lange das publickey-Verfahren, um sich gegen Attacken gegen Port 22 und damit SSH zu schützen. Dafür hat Frank gesorgt. Meine Server in der Schule nun endlich auch … und damit bestand das Problem, dass ich nicht den gleichen Key für zwei Server nutzen wollte bzw die Neuerstellung eines weiteren Keys den Inhalt der id_dsa Datei im .ssh Verzeichnis überschreibt und ich so meinen alten Key verloren hätte. Wer zwei oder mehr getrennte Keys wünscht, muss also Pfade zu denselben angeben.

Während der gesamten folgenden Schritte immer eine root-shell auf dem Server offen haben, damit man sich die alten Einstellungen im Notfall zurück holen kann, sollte man sich aussperren.

Zur Vorbereitung die /etc/ssh/sshd_config an einen sicheren Ort wegkopieren und dann anpassen – und zwar die folgenden Zeilen in derselben, sofern man unter einem Debian / einer SuSE mit installiertem sudo bzw. Ubuntu arbeitet:

Port 222222
PermitRootLogin no
X11Forwarding no
PrintMotd no
ChallangeResponseAuthentication no
PasswordAuthentication no

Port 22222 ist evtl. etwas übertrieben – aber Paranoia schadet ja nicht.

Auf dem Client dann den Key erstellen und die Rückfrage nach einem Passwort für den Key mit einer entsprechend komplizierten und langen Passphrase beantworten:

ssh-keygen -f /home/benutzer/.ssh/benutzer-servername

Der öffentliche Teil muss dann mit Hilfe von scp auf den Server transferiert werden:

scp /home/benutzer/.ssh/benutzer-servername.pub benutzer@servername.domain:/home/benutzer

Dort den öffentlichen Schlüssel in den Schlüsselbund kopieren:

cat benutzer-servername.pub >> /home/benutzer/.ssh/authorized_keys

Ein

/etc/init.d/ssh restart

schaltet die Änderungen scharf.

Jetzt die Verbindung vom Client aus testen:

ssh benutzer@servername.domain -p 22222 -i /home/benutzer/.ssh/benutzer-servername

Wenn alles klappt, man also nach der Passphrase für den Key und nicht mehr nach einem Serverkennwort gefragt wird, sich also anmelden und mit Hilfe von sudo auch root werden kann, ist alles gut. Wenn nicht, dann zuerst die Rechte der eben angelegten Dateien und Verzeichnisse kontrollieren.