Donnerstag, 21. Mai 2009

SSH mit Public Keys einsetzten

In meinem Artikel Netbooks und Notebooks synchronisieren mit Unison
habe ich SSH für den Datenaustausch benutzt.

Ich zeige in diesem Artikel, wie man die obige Lösung um das Public Key Verfahren erweitert.

SSH heisst Secure Shell und ermöglicht das sichere und verschlüsselte Arbeiten in einem Terminal auf einem entfernten Rechner. Daneben wird auch Dateiübertragung mit SCP und sFTP, sowie das Tunneln von anderen Protokollen unterstützt.

Zur Installation benutzt man auf dem entfernten Rechner:

sudo apt-get install ssh

Die Verbindung zum entfernten Rechner wird mit

ssh user@ipadresse

auf dem lokalen Rechner aufgebaut. Der User kann weggelassen werden, wenn es der selbe wie auf dem lokalen Rechner ist.

Anschließend muss man das Passwort eingeben. Das ist nicht nur unkomfortabel sondern stellt auch je nach Passwortstärke ein Sicherheitsrisiko da.

Besser ist es das Public Key Verfahren einzusetzen. Dazu muss zuerst ein öffentlicher Schlüssel erzeugt werden. Das geschieht auf dem lokalen Rechner mit

ssh-keygen -t rsa

Es kann ein DSA oder RSA Schlüssel erzeugt werden. Vor- und Nachteile werden z.B. hier beschrieben. Der erzeugte Schlüssel sollte durch eine Passphrase gesichert werden.

Der erzeugte Schlüssel muss jetzt mit

ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipadresse

auf den entfernten Rechner übertragen werden.

Anschließend kann die Verbindung benutzt werden um auf dem entfernten Rechner die ssh-Anmeldung mit Passwort auszuschalten.

sudo nano /etc/ssh/sshd_config

Anstatt nano kann jeder Editor benutz werden. Es sollten folgende Werte gesetzt werden:

PasswordAuthentication no
UsePAM no


Nun Speichern (ESC,ESC,x) und mit

sudo /etc/init.d/ssh reload

die SSH-Einstellungen auf dem entferten Rechner neu laden. Von nun ab kann man sich nur noch per Public Key auf dem entferten Rechner einloggen.

Den gespeicherten Schlüssel im Verzeichnis .ssh sollte man in die Sicherung mit einbeziehen.

Keine Kommentare:

Kommentar veröffentlichen