SSH-Schlüssel

Wer kennt das nicht? Man möchte sich per SSH auf einem Server anmelden, dies aber möglichst sicher und ohne jedes Mal das Passwort eingeben zu müssen. Eine Möglichkeit besteht darin, sich ein Schlüsselpaar zu erzeugen, den öffentlichen Schlüssel auf dem Server zu hinterlegen und den privaten Schlüssel zur Anmeldung zu verwenden. Dieses Verfahren ist sicherer und einfacher, als sich viele verschiedene Passwörter zu merken, die zusätzlich nicht zu einfach sein sollen.

Dazu kann man jedes beliebige Linux / Unix-System nutzen, auf welchem die SSH Pakete installiert sind. Für Windows gibt es ebenfalls Portieren, damit habe ich aber keine Erfahrungen. Man ruft den folgenden Befehl auf und generiert damit ein RSA-Schlüsselpaar mit 2048 Bit Länge. Ganz Paranoide können die Einstellungen auch auf 4096 Bits ändern. Man sollte beachten, dass die Verschlüsselung dann natürlich mehr Rechenzeit benötigt.

ssh-keygen -b 2048 -t rsa

Passwort

Der private Schlüssel kann mit einem Passwort versehen werden. Für die Benutzung in Skripten ist dies natürlich hinderlich. Hier muss jeder selbst abwägen, ob Sicherheit oder Bequemlichkeit wichtiger sind.

Danach liegen 2 Dateien (id_rsa und id_rsa.pub) im Ordner .ssh im Wurzelverzeichnis des Nutzers vor. Die Datei id_rsa.pub wird auf den Server übertragen und an die Datei .ssh/authorized_keys2 des Nutzers angehängt, für den man sich anmelden möchte.

cat id_dsa.pub >> ~/ssh/authorized_keys2

Privater Schlüssel

Die Datei id_rsa ist dann der private Schlüssel. Die Datei sollte nur die Rechte 400 (r--) aufweisen. Damit kann man sich dann mit ssh am Server anmelden oder per scp Dateien kopieren.

ssh -i <Schlüsseldatei> login@server
scp -i <Schlüsseldatei> login@server:Datei .