Schlüsselbasierte SSH-Authentifizierung

Schlüssel

Gestern habe ich ja bereits geschrieben, wie man einen automatisierten SSH-Login ohne Schlüsselpaare erstellen kann. Diese Variante sollte nur genutzt werden, wenn man die nötigen Passwörter nicht direkt in ein Shellscript schreibt und die Authentifizierung so für gewisse Aufgaben vereinfachen möchte.

Heute zeige ich euch, wie man normalerweise eine SSH-Authentifizierung ohne Passworteingabe einrichtet. Die Lösung sind so genannte Schlüsselpaare. Hierbei wird ein öffentlicher RSA-Schlüssel auf den entfernten Rechner gespielt, mit dem man sich ohne Passwort authentifizieren kann. Die Einrichtung dieser Methode ist in wenigen Schritten erledigt und sollte niemanden vor größere Hürden stellen.

Zunächst meldest du dich auf deinem lokalen Computer mit dem Benutzer an, mit dem du dich später zum entfernten Computer verbinden möchtest. Dann rufst du folgenden Befehl auf:

ssh-keygen -N "" -t rsa -f ~/.ssh/id_rsa

Damit werden ein privater sowie ein öffentlicher Schlüssel generiert. Danach erstellst du eine Konfigurationsdatei für SSH, in der eingestellt wird, wo dein privater Schlüssel für eine schlüsselbasierte Authentifizierung liegt. Dazu führst du folgendes Kommando aus:

echo "identityfile $(echo ~)/.ssh/id_rsa" > ~/.ssh/config

Zuletzt musst du den öffentlichen Schlüssel auf den entfernten Rechner spielen:

ssh-copy-id -i ~/.ssh/id_rsa.pub <Benutzername>@<Computer>

Hierbei musst du <Benutzername> durch den gewünschten Benutzer auf dem entfernten Rechner und <Computer> durch den Hostname oder die IP-Adresse des entfernten Computers ersetzen.

Nachdem du das gemacht hast, solltest du dich nun per

ssh <Benutzername>@<Computer>

ohne eine Passwortabfrage auf dem entfernten Computer anmelden können (natrlich wieder <Benutzername> und <Computer> ersetzen), vorrausgesetzt, du bist mit dem Benutzer an deiner lokalen Maschine angemeldet, mit dem du die Schlüsselpaare eingerichtet hast.

Hinterlasse einen Kommentar