Der Befehl SSH

ssh_featured

Der Befehl ssh ist auf fast allen Linux- bzw. UNIX-Betriebssystemen verfügbar und kann für einen sicheren Zugriff auf den SSH Server einer Remote-Maschine oder eines Remote-Systems verwendet werden. Angewendet wird der Befehl für das Einloggen, den sicheren Dateitransfer, sowie schließlich auch die Ausführung von Befehlen auf einem entfernten System.

In diesem Beitrag lernen Sie die grundlegende Funktionalität des ssh Befehls kennen.

SSH Login

Zunächst ist es erforderlich, eine Verbindung mit einer Remote-Maschine herzustellen - Sie benötigen dazu lediglich die Adresse des jeweiligen Systems. Der Befehl ssh wird dann folgendermaßen eingesetzt:

ssh [Adresse]

Bei dem ersten Verbindungsaufbau mit einem SSH Server findet eine besondere Abfrage statt, bevor die Verbindung tatsächlich hergestellt wird. Hierbei wird Ihnen auch ein sogenannter Host-Schlüssel angezeigt, der jeden SSH Server eindeutig identifiziert.

Der SSH Server und der dazugehörige Host-Schlüssel wird nach Ihrer Bestätigung automatisch in die Liste bekannter Hosts unter "~/.ssh/known_hosts" eingetragen. Mithilfe des Host-Schlüssels kann ssh bei allen folgenden Verbindungsversuchen automatisch die Identität des Servers überprüfen. Wenn an dieser Stelle "auf einmal" ein anderer Schlüssel angeboten wird, sollten Sie sich sicher sein, dass er wirklich auf dem Server-System geändert wurde. Andernfalls sollten Sie die Verbindung besser ablehnen.

Es folgt ein Beispiel für den Ablauf eines Verbindungsaufbaus mit einem SSH Server.

Beispiel: ssh Login

Eingabe:

ssh ssh.profi-tutorials.de

Meldung:

Nach Ausführung des Befehls wird eine folgende Meldung im Terminal angezeigt, da es sich hierbei um den ersten Verbindungsaufbau handelt:

The authenticity of host 'ssh.profi-tutorials.de' cannot be established.
DSA key fingerprint is [...].
Are you sure you want to continue connecting (yes/no)?

Eingabe:

Sie können diese Meldung mit "yes" bestätigen, um mit dem Verbindungsaufbau fortzufahren. 

yes

Ausgabe:

Der SSH Server wurde nun in die Liste bekannter Hosts aufgenommen.

Warning: Permanently added 'ssh.profi-tutorials.de' (DSA) to the list of known hosts.

Weiteres:

Die Verbindung mit dem SSH Server ist nun hergestellt. In den meisten Fällen findet nun noch eine Passwortabfrage statt, nach welcher Sie schließlich in der Befehlszeile der Remote-Maschine landen.

Bestimmten Benutzer verwenden

Während dem Login ist es auch möglich einen Benutzer zu spezifizieren. Der Benutzername wird dazu ganz einfach als Präfix und mit einem '@' getrennt an die Adresse des SSH Servers angehängt:

ssh [Benutzer]@[Adresse]

Mit der Option -l (Login Name) gibt es auch noch eine andere Schreibweise dieses Befehls:

ssh -l [Benutzer] [Adresse]

Es folgen zwei Beispiele.

Beispiel: Benutzer spezifizieren mit @

Eingabe:

ssh hellberg@ssh.it-consulting.de

Bedeutung:

Hier wird eine Verbindung zu dem SSH Server 'ssh.it-consulting.de' aufgebaut. Der nach dem Verbindungsaufbau eingeloggte Benutzer ist 'hellberg'.

Beispiel: Benutzer spezifizieren mit -l

Eingabe:

ssh -l hellberg ssh.it-consulting.de

Bedeutung:

Hierbei handelt es sich um eine alternative Schreibweise. Die Funktion dieses Befehls ist analog zu dem vorigen Beispiel.

Kommandos ausführen

Die Eingabe und Ausführung von Befehlen ist selbstverständlich ganz einfach über die Befehlszeile der SSH Verbindung möglich, jedoch gibt es die zusätzliche Möglichkeit, Befehle ganz ohne expliziten Login in einer Befehlszeile, auszuführen. Dazu können Sie einfach einen beliebigen Befehl an das Ende des SSH Befehls anhängen. Die Syntax lautet dann folgendermaßen:

ssh [Adresse] [Befehl]

Nach Authentifizierung wird der Befehl auf der Remote-Maschine ausgeführt und die Ausgabe in Ihrer lokalen Befehlszeile ausgegeben.

Beispiel: Befehlsausführung

Eingabe:

ssh ssh.beratung-hannover.de ls /home/hellberg/beratung-hannover/

Ausgabe:

Nach Authentifizierung durch die Passwortabfrage wird der Befehl ls ausgeführt und das Ergebnis/die Ausgabe in Ihrer lokalen Befehlszeile ausgegeben. In diesem Fall handelt es sich dabei um Unterverzeichnisse, welche sich auf der Remote-Maschine in dem Verzeichnis /home/hellberg/beratung-hannover/ befinden.

Password:

analyse it-consulting outsourcing loesungen

Die ~/.ssh/config

Parameter wie die Adresse, der Benutzername oder auch der Port müssen standardmäßig bei jedem Verbindungsaufbau erneut eingegeben werden. Mit der config Sie jedoch Profile anlegen, um den Vorgang zu vereinfachen. Die config befindet sich im Verzeichnis ~/.ssh/ und wird mit der ersten Ausführung des ssh Befehls automatisch erstellt. Wenn die Datei nicht vorhanden ist, können Sie sie auch mit dem folgenden Befehl erstellen:

touch /home/[Benutzer]/.ssh/config

Näheres zu touch und weiteren nützlichen Linux Befehlen finden Sie auch in unserem Beitrag "Die 20 wichtigsten Linux-Befehle".

Jeder Eintrag in der config beginnt mit 'Host' gefolgt von dem Namen des Profils. Diesen verwenden Sie später, um sich mit den hier festgelegten Einstellungen zu verbinden. In den Folgezeilen können Sie beliebige Parameter, wie beispielsweise 'HostName', 'Port' (Standard-Port für ssh ist 22) oder 'User' eintragen. Diese werden dann automatisch während des Verbindungsaufbaus verwendet. Welche Parameter für die Nutzung in der config verfügbar sind, können Sie unter man.openbsd.org nachlesen.

Den genauen Aufbau der Einträge in der ~/.ssh/config können Sie im folgenden Beispiel nachvollziehen:

Beispiel: Host in der ssh_config

SSH Login vorher:

ssh hellberg@ssh.profi-tutorials.de

Inhalt der ~/.ssh/config:

Host profi

   HostName ssh.profi-tutorials.de
   User hellberg

SSH Login nachher:

ssh profi

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: