SSH (Secure Shell) dient unter anderem dazu, sich über eine verschlüsselte Verbindung auf der Konsole eines anderen Rechners einzuloggen. “Tunneling” und sicherer Dateitransfer (SCP, Secure Copy) sind zwei weitere wichtige Anwendungsgebiete.
Zu Beginn jeder SSH Session steht so sicher wie das Amen in der Kirche die Authentifizierung des Users bei dem Rechner, mit dem er die Session aufbauen möchte. Normalerweise geschieht dies über den Benutzernamen und ein Passwort. Den Benutzernamen kann man sich meist ja gerade noch merken, aber die ständige Eintipperei von Passwörtern kann auf Dauer wirklich lästig werden - v.a. dann, wenn man laufend auf vielen Maschinen arbeiten muss. Es ist daher eine wirklich lohnende Alternative sich einmal die Mühe zu machen sich einen Schlüssel zu basteln, den man dann zur Authentifizierung für alle seine Rechnern einsetzten kann.
Step 1: Schlüssel(paar) erstellen:
Das dazu benötigte Kommando heißt “ssh-keygen”. ssh-keygen sollte auf jedem vernünftigen Linux-Rechner verfügbar sein. Da wir ein RSA-Schlüsselpaar wollen, teilen wir ssh-keygen dies über den Schalter -t rsa mit.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):ENTER
Enter passphrase (empty for no passphrase):PASSWORT, ENTER
Enter same passphrase again:PASSWORT, ENTER
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
8c:ba:72:21:9a:38:a1:6e:bf:9f:56:d5:69:ac:5b:51
Wir werden oben gefragt, wohin das Schlüsselpaar gespeichert werden soll. Falls kein anderer Pfad als der vorgeschlagene gewünscht ist, einfach Enter drücken. Danach wird die Frage nach einem Passwort für den Schlüssel gestellt. Einfach eines eingeben (Ja: Wir brauchen ein Passwort für den Schlüssel! Ich höre entsetzte Schreie. “Wir wollten doch kein Passwort mehr haben”. Abwarten! Step 3 erklärt wie wir um das Schlüssel-Passwort herum kommen.)
Das erzeugte Schlüsselpaar landet übrigens, falls wir keinen anderen Pfad vorgeben, im Verzeichnis ~/.ssh.
id_rsa ist hierbei der private Schlüssel, id_rsa.pub ist der öffentliche Schlüssel. Ein Sichern des Schlüssels auf USB-Stick, CD, Bierdeckel oder was auch immer ist eine gute Idee.
Step 2: Schlüssel beim Rechner eintragen.
Als nächstes muss dem Rechner, den wir benutzen wollen, der Schlüssel bekannt gemacht werden, den wir eben erzeugt haben. Dies geschieht dadurch, dass der öffentliche Teil des Schlüssels in eine Datei mit erlaubten Schlüsseln auf dem Rechner kopiert wird. Diese Datei liegt ebenfalls in dem o.g. Verzeichnis und heißt authorized_keys.Man kann das von Hand machen, einfacher ist es aber den Befehl ssh-copy-id zu benutzen. Der Schalter -i und der Pfad zum öffentlichen Schlüssel teilt ssh-copy-id mit, welcher Schlüssel eingetragen werden soll. Dieser Schritt ist ebenfalls einmalig, muss aber natürlich für alle Rechner durchgeführt werden, auf denen wir uns mit dem Schlüssel authentifizieren wollen!
ssh-copy-id -i ~/.ssh/id_rsa.pub username@host
10
Password:PASSWORT, ENTER
Now try logging into the machine, with “ssh ‘username@host’”, and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
Achtung: oben ist natürlich das Benutzer-Passwort gemeint! Nicht das Schlüssel-Passwort von dem Schlüssel, den wir eintragen wollen. Der Rechner weiß somit nach Eingabe des Benutzer-Passworts, dass der neue Schlüssel einem Benutzer gehört, der tatsächlich autorisiert ist, auf den Rechner zuzugreifen.
Step 3: Endlich Passwortfrei einloggen:
Im letzten Schritt teilen wir dem ssh-agent (das ist ein Dienst, welcher für den Benutzer eine Autorisierung durchführt) mit, welchen Schlüssel er benutzen soll. Dies geschieht durch ssh-add.
ssh-add ENTER
Enter passphrase for /home/username/.ssh/id_rsa:PASSWORT, ENTER
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)
Fertig. Step 3 muss übrigens jedes Mal ausgeführt werden, nachdem wir unseren eigenen Rechner neu gestartet haben!
Nun genügt ein schnödes
ssh username@host
und wir sind eingeloggt. Ganz ohne Passwort, versteht sich!
Hungrig geworden? Keine Lust mehr auf Computer??
Auch Kochrezepte und vieles mehr finden sich im Sammelsurium.
0 Responses to “Das kleine SSH-Tutorial - Login ohne Passwort”
Leave a Reply