SSH Login ohne Passwort
SSH ist eine sichere und schnelle Möglichkeit um sich mit einem Server oder anderem Computer im Netz zu verbinden. Bei Betriebssystemen abseits von Windows ist diese Art des Anmeldens weit verbreitet wie zum Beispiel bei Linux, Mac OSX, Unix, Solaris, FreeBSD, usw.
Schlüsselpaar erstellen
Wie kann man nun den Login beschleunigen? Die Antwort auf diese Frage sind Schlüsselpaare. Man kann sich einen Zugangsschlüssel (private rsa key) und einen dazu passenden öffentlichen Schlüssel (public rsa key) erstellen. Sobald das Gegenüber den eigenen öffentlichen Schlüssel kennt und diesen akzeptiert benötigt man für das Login kein Passwort mehr. Ein solches Schlüsselpaar kann wie folgt erstellt werden (getestet unter Mac OSX und Linux):
ssh-keygen -t rsa
Diese Vorgangsweise erzeugt im versteckten SSH Verzeichnis im home Ordner des Benutzers zwei neue Dateien:
- id_rsa
das ist der private Schlüssel und darf nicht weitergegeben werden - id_rsa.pub
das ist der öffentliche Schlüssel, welchen wir allen Rechnern übergeben werden, bei denen wir uns ohne Passwortabfrage anmelden wollen.
Passphrase eingeben oder nicht?
Während der Erstellung der Schlüssel wird man aufgefordert eine Passphrase anzugeben. Dieser Punkt ist optional, in der Konsole ist folgende Ausgabe zu sehen:
Enter passphrase (empty for no passphrase):
Benötigt man nun eine Passphrase oder nicht? Es ist so, dass der private Schlüssel auf dem Rechner liegt, auf dem er erstellt wird. Wird dieser gestohlen oder hat ein Angreifer anders darauf Zugriff, so kann er den privaten Schlüssel auslesen und verwenden. Eine Passphrase schützt diesen Schlüssel durch ein Passwort vor den unberechtigten Zugriff am eigenen Rechner. Eine Angabe eines solchen Passworts dient somit einem zusätzlichen Schutz. Es ist ganz wichtig, dass man sich dieses Passwort merkt, da ansonsten auch der Private Schlüssel und im schlimmsten Fall der Zugriff auf den Fremdrechner nicht mehr möglich ist.
Öffentlichen Schlüssel bekanntgeben
Nachdem wir nun lokal einen privaten und einen öffentlichen Schlüssel haben müssen wir nur noch den öffentlichen Schlüssel auf das Zielsystem bringen auf das wir ohne Passworteingabe zukünftig über SSH zugreifen möchten. Dazu müssen wir uns zunächst normal über SSH mit Passwort anmelden:
ssh username@domain.com
Bei dem Kommando müssen Benutzername und Domain oder IP Adresse an die eigene Anforderungen angepasst werden. Im home Verzeichnis des Benutzers ist ein versteckter Ordner .ssh zu finden in den wir wechseln. Gibt es den noch nicht, dann erstellen wir ihn einfach. In diesen Ordner kopieren wir nun den öffentlichen Schlüssel. Das geht vom lokalen Rechner aus wie folgt:
cat .ssh/id_rsa.pub | ssh username@domain.com 'cat >> .ssh/authorized_keys'
Was passiert hier? Zuerst wird mit cat der öffentliche Schlüssel ausgegeben. Diese Ausgabe leiten wir mit der Pipe an ein cat Kommando am Zielsystem weiter welches diese in die Datei authorized_keys schreibt. In dieser Datei kann man beliebig viele öffentliche Schlüssel einfügen, damit auch Kollegen darauf ohne Passwort zugreifen können.
SSH Login ohne Passwort
Mit der Erstellung und dem Austausch der Schlüsselpaare ist auch schon die ganze administrative Arbeit getan. Von nun an wird man beim SSH Login nicht mehr nach einem Passwort gefragt. Der SSH Login ohne Passwort erspart nun zusätzliche Arbeit und beschleunigt den Loginprozess für den Benutzer.
Fazit
Man kann den Loginprozess auf entfernte Rechner mit SSH deutlich beschleunigen und benutzerfreundlicher machen. Das ist mit relativ wenig Aufwand durch den Einsatz von SSH Schlüsseln möglich. Man kann über diese Art der Anmeldung auch Benutzer am Zielrechner recht einfach aussperren. Dazu löscht man einfach dessen öffentlichen Schlüssel. Durch diese Art der Zugriffskontrolle braucht der Sysadmin das Passwort nicht jedesmal ändern, wenn Benutzer entfernt werden sollen.
Es ist aber doch so, daß der Schlüssel zur IP des clients passen muß, oder? Bei ständig wechselnden IP-Adressen, wie das heute bei Providern wie Telekom etc.
der Fall ist, wird man da seine Probleme haben, immer den passenden Key auf dem Server liegen zu haben. Oder sehe ich das falsch?