SSH – Login ohne Passwort

Veröffentlicht: Juni 9, 2015 in Linux
Schlagwörter:,

OpenSSH LogoVerwendet man SSH-Schlüsselpaare, kann man einfach und sicher eine SSH-Verbindung zu einem Server herstellen, ohne ein Passwort für eines der Systeme eingeben zu müssen. Dies ist besonders hilfreich bei der Automatisierung von Aufgaben, bei denen Benutzer a von Host A ein Login auf Host B mit dem Benutzer b benötigt.

Vorgehen

Zunächst sollte man sich mit dem jeweiligen Benutzer auf dem System anmelden, der Schlüssel lässt sich dann mittels ssh-keygen erzeugen (für weitere Optionen zur Festlegung der Verschlüsselung siehe man ssh). Bei sämtlichen Fragen ist es ausreichend [Enter] zu drücken, da man sonst beim Verbindungsaufbau entsprechend nach der passphrase gefragt wird.

Hinweis: Das Verwenden einer leeren Passphrase stellt ein Sicherheitsrisiko dar, weil so jeder, der in Besitz dieser Datei kommt, Zugriff auf die jeweiligen Systeme erlangen kann. Verwendet man eine Passphrase und möchte diese nur einmal innerhalb einer Session eingeben verwendet man: ssh-add ~/.ssh/id_rsa

~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tocx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tocx/.ssh/id_rsa.
Your public key has been saved in /home/tocx/.ssh/id_rsa.pub.
The key fingerprint is:
91:f4:9e:43:6d:22:c0:33:8a:e5:17:7e:0c:29:8b:9c tocx@hel
The key's randomart image is:
+---[RSA 2048]----+
|     ....        |
|    o Bo o .     |
| . * = *+ + o    |
|  E + o o= +     |
|     . .S +      |
|           .     |
|                 |
|                 |
|                 |
+-----------------+

Abschliessend muss der Schlüssel noch auf den RemoteHost kopiert werden (hierfür muss einmalig das Passwort eingegeben werden).

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

Bei der Verbindung zu einem anderen Server, muss man evtl. Port oder Benutzernamen angeben. Möchte man dies vereinfachen kann man entsprechende Voreinstellungen in der Datei ~/.ssh/config hinterlegen.

Host server1
   HostName 192.168.0.1
   Port 2200
   User testuser

Nun brauch man nicht mehr

ssh testuser@192.168.0.1 -p2200

eingeben, es reicht nun

ssh server1
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s