ssh ohne Passwort

Möchte man einen Linux Rechner per ssh fernsteuern wird man beim Anmelden nach einem Passwort gefragt. Dies kann auf dauer etwas lestig werden. Vereinfachen kann man dies indem ein Schlüsselpaar erzeugt wird. Der eine Teil des Schlüssels bleibt auf dem eigenen Rechner und der Andere, der öffentliche Teil (public) wird auf dem fernzusteuernen Rechner (Remote) hinterlegt.

Die ssh-Schlüssel werden üblicherweise im Benutzerverzeichnis unter "/home/username/.ssh" abgelegt. Es gibt verschiedene Verschlüsselungsverfahren. Als sehr sicher gilt das RSA - Verfahren. Der Inhalt des Verzeichnises kann mit folgendem Kommando angezeigt werden :

ls ~/.ssh

Der private Schlüssel steht in der Datei "id_rsa" und er öffentliche Schlüssel in der Datei "id_rsa.pub". Sind diese Dateien nicht vorhanden müssen sie erzeugt werden :

ssh-keygen -t rsa -b 4096

Nach dem bestätigen des Kommandos wird man zur eingabe des Dateinamen für die Schlüssel aufgefordert. Standardmäßig werden die oben erwähnter Namen verwendet. Es muss also nichts eingegeben werden und es kann einfach bestätigt werden.

In einer sicheren Netzwerkungeben kann auch auf das darauffolgende eingeben einer "Passphrase" verzichtet werden. Also auch hier nichts eingeben und einfach bestätigen.

Die beiden Dateien "id_rsa" und "id_rsa.pub" werden nun erzeugt. Anschließend muss der öffentliche Schlüssel noch auf den entfernten Rechner kopiert werden :

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

Es muss natürlich der richtige Benutzername und die richtige IP oder der Hostname angegeben werden. Auf dem entfernten Rechner wird der öffentliche Schlüssel der Datei "~/.ssh/authorized_keys" angehängt.

Greift man jetzt per ssh auf den entfernten Rechner zu bekommt man drekten Zugriff ohne Passworteingabe.

Erhöhte Sicherheit

Um die Sicherheit zu erhöhen, kann beim Erzeugen der Schlüsseldateien eine PassPhrase eingegeben werden. Diese muss dann immer beim Anmelden am entfernten Rechner eingegeben werden so wie zuvor, ohne die Schlüsseldateien, das Passwort. Muss man sich bei diesem Szenario mehrfach An- und Abmelden kann man sich die Arbeit etwas erleichtern in dem man dem ssh-Agenten, der für die Anmeldung zuständig ist, die Passphrase einmalig mit folgendem Kommando mitteilt :

ssh-add ~/.ssh/id_rsa

Man wird dann zur Eingabe der Passphrase ausgefordert. Bei den folgenden Anmeldungen muss die Passphrase nicht mehr eingegeben werden, sollange das Terminal nicht geschlossen wird. Mit folgendem Kommando kann man sich anzeigen lassen ob schon eine Passphrase hinterlegt wurde :

ssd-add -l

Backup

Möchte man das Schlüsselpaar weiter verwenden z.B. wenn einer der Rechner neu aufgesetzt wird muss auf dem lokalen Rechner die Datei "~/.ssh/id_rsa" gesichert bzw. zurück gesichert werden und auf dem entfernten Rechner die "~/.ssh/id_rsa.pub" - Datei.