Der Befehl SSH
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!