Einführung
SSH (Secure Shell) ist ein Netzwerkprotokoll, das sichere Remote-Verbindungen zwischen zwei Systemen ermöglicht. Systemadministratoren verwenden SSH-Dienstprogramme, um Maschinen zu verwalten, Dateien zwischen Systemen zu kopieren oder zu verschieben. Da SSH Daten über verschlüsselte Kanäle überträgt, ist die Sicherheit auf einem hohen Niveau.
Dieser Artikel führt Sie durch die beliebtesten SSH-Befehle . Die Liste kann auch als Spickzettel dienen und ist nützlich, wenn Sie das nächste Mal eine Aufgabe erledigen müssen.

Voraussetzungen
- Ein SSH-Client Ihrer Wahl
- Ein SSH-Server auf dem Remote-Rechner
- Die IP-Adresse oder der Name des Remote-Servers
Zugriff auf einen Remote-Server
Um eine Verbindung zu einem Remote-Computer herzustellen, benötigen Sie seine IP-Adresse oder seinen Namen. Laden Sie das Terminal oder einen beliebigen SSH-Client und geben Sie ssh
ein gefolgt von der IP-Adresse:
ssh 192.168.56.101
oder Name:
ssh test.server.com
Wenn Sie sich zum ersten Mal mit einem Host verbinden, sehen Sie diese Nachricht:

Geben Sie ja ein und drücken Sie die Eingabetaste. Möglicherweise müssen Sie auch Ihr Passwort eingeben.
Geben Sie einen Benutzernamen für die SSH-Verbindung an
SSH verwendet den aktuellen Benutzer beim Zugriff auf einen Remote-Server. Um einen Benutzer für eine SSH-Verbindung anzugeben, führen Sie den Befehl in diesem Format aus:
ssh [email protected]_or_ip
Zum Beispiel:
ssh [email protected]
Hinweis: Wenn Sie auf den Fehler „Verbindung abgelehnt“ stoßen, finden Sie Lösungen in unserem Leitfaden SSH „Verbindung abgelehnt“.
Verwenden Sie eine andere Portnummer für die SSH-Verbindung
Standardmäßig wartet der SSH-Server auf Port 22 auf eine Verbindung. Wenn die Porteinstellung in der SSH-Konfigurationsdatei geändert wurde, müssen Sie den Port angeben. Andernfalls erhalten Sie diesen Fehler:

Um eine Verbindung zu einem Remote-Host mit einer benutzerdefinierten SSH-Portnummer herzustellen, verwenden Sie -p
Flagge. Zum Beispiel:
ssh test.server.com -p 3322
Generieren Sie SSH-Schlüssel mit SSH Keygen
Um die Sicherheit von SSH-Verbindungen zu verbessern, generieren Sie ein Schlüsselpaar mit dem Dienstprogramm keygen. Das Paar besteht aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel kann geteilt werden, während der private Schlüssel sicher bleiben muss.
SSH-Schlüsselpaare werden verwendet, um Clients automatisch gegenüber Servern zu authentifizieren. Wenn Sie ein SSH-Schlüsselpaar erstellen, müssen Sie kein Passwort mehr eingeben, um auf einen Server zuzugreifen.
Verwenden Sie auf dem Terminal des Hostcomputers diesen Befehl, um ein Schlüsselpaar zu erstellen:
ssh-keygen -t rsa
Um die Standardeinstellungen zu verwenden, drücken Sie bei den Eingabeaufforderungen für Dateispeicherort und Passphrase die Eingabetaste.
Öffentlichen SSH-Schlüssel kopieren
Um das Schlüsselpaar für die SSH-Authentifizierung zu verwenden, müssen Sie den öffentlichen Schlüssel auf einen Server kopieren. Der Schlüssel ist die Datei id_rsa.pub zuvor mit dem SSH-Keygen-Dienstprogramm erstellt.
Um Ihren Schlüssel auf einen Server zu kopieren, führen Sie diesen Befehl vom Client aus:
ssh-copy-id hostname_or_IP
Sie können auch einen Benutzernamen angeben, wenn Sie nicht den aktuellen Benutzer verwenden möchten.
Geben Sie das Passwort ein, um sich zu authentifizieren, wenn Sie dazu aufgefordert werden. Danach müssen Sie das Passwort nicht mehr verwenden, um sich mit demselben Server zu verbinden.
Kopieren Sie eine Datei aus der Ferne über SSH mit SCP
Mit SCP können Sie Dateien sicher über das SSH-Protokoll kopieren Werkzeug. Die grundlegende Syntax ist:
scp fileName [email protected]:/home/username/destination
Zum Beispiel, um eine Datei sample3 zu kopieren zu Ihrem Desktop auf einem entfernten Server mit einem Benutzernamen test , geben Sie ein:
scp sample3 [email protected]:/home/test/Desktop
Die Ausgabe zeigt eine Zusammenfassung des Vorgangs.

Achten Sie darauf, Großbuchstaben zu verwenden -P
Flag, wenn Sie den Port angeben müssen.
SSH-Konfigurationsdatei bearbeiten
Sie können steuern, wie entfernte Benutzer über SSH auf einen Server zugreifen können. Bearbeiten Sie die Einstellungen in sshd_config
Datei zum Anpassen der SSH-Serveroptionen. Stellen Sie sicher, dass Sie nur die Optionen bearbeiten, mit denen Sie vertraut sind. Ein Server kann aufgrund einer schlechten Konfiguration unzugänglich werden.
Verwenden Sie den Editor Ihrer Wahl, um die Datei zu bearbeiten. Sie benötigen Superuser-Berechtigungen, um Änderungen vorzunehmen. Unter Linux verwenden wir vim :
Geben Sie in der Befehlszeile auf einem Remote-Host Folgendes ein:
sudo vim /etc/ssh/sshd_config
Geben Sie das sudo-Passwort ein, und die Shell öffnet die Datei in dem von Ihnen verwendeten Editor.
SSH-Dienst neu starten
Wenn Sie Änderungen an der SSH-Konfiguration vornehmen, müssen Sie den Dienst unter Linux neu starten.
Führen Sie je nach Linux-Distribution einen der folgenden Befehle auf dem Computer aus, auf dem Sie die Einstellungen geändert haben:
sudo ssh service restart
oder:
sudo sshd service restart
Geben Sie abschließend das Passwort ein, um den Vorgang abzuschließen. Als Ergebnis verwendet die nächste SSH-Sitzung die neuen Einstellungen.
Grundlegende SSH-Befehle
Das Arbeiten auf einem Remote-Server mit SSH erfordert die Kenntnis grundlegender SSH-Befehle. Verwenden Sie die Befehle und Optionen in diesem Artikel, um einen Remote-Host zu verwalten. Beachten Sie, dass Sie die Flags kombinieren können, um die gewünschte Ausgabe zu erhalten.
Arbeitsverzeichnispfad anzeigen
Verwenden Sie das pwd
Befehl, um den Dateisystempfad anzuzeigen.

Die Ausgabe zeigt den Speicherort des Verzeichnisses an, in dem Sie sich befinden.
Dateien und Verzeichnisse auflisten
Verzeichnis wechseln
Um den Inhalt eines aktuellen Arbeitsordners aufzulisten, verwenden Sie ls Befehl.
Die Shell zeigt die Namen aller Verzeichnisse, Dateien und Links an. Um weitere Informationen zu erhalten, fügen Sie eines der folgenden Flags hinzu:
-a
zeigt versteckte Linux-Dateien und Einträge an, die mit einem Punkt beginnen.-l
zeigt Dateidetails für Verzeichnisinhalte. Die Ausgabe enthält beispielsweise Berechtigungen, Eigentum, Datum usw.-s
listet die Größe der Dateien in Blöcken auf. Fügen Sie -h hinzu, um die Größe in einer für Menschen lesbaren Form anzuzeigen.
Um zu einem bestimmten Ordner zu navigieren, verwenden Sie cd
Befehl und einen Namen oder Pfad eines Verzeichnisses.
cd Desktop/Downloads/Sample
Denken Sie daran, dass bei den Namen zwischen Groß- und Kleinschreibung unterschieden wird. Verwenden Sie cd
ohne Name oder Pfad, um zum Home-Verzeichnis des Benutzers zurückzukehren.
Nützliche cd
Zu den Optionen gehören:
cd ..
Gehen Sie in das Verzeichnis, das eine Ebene höher ist als Ihr aktueller Standort.cd -
zum vorherigen Verzeichnis wechseln.cd /
gehe in das Stammverzeichnis.
Eine Datei kopieren
Verwenden Sie den cp
Befehl zum Kopieren einer Datei oder eines Verzeichnisses. Sie müssen den Namen der Datei und den Zielspeicherort angeben.
cp fileName /directory/path/destination
Zum Kopieren von Datei1 vom Desktop zu Dir1 , geben Sie ein:
cp file1 Dir1
Um den Namen von Datei1 zu ändern Verwenden Sie beim Kopieren an einen anderen Zielort dieses Format:
cp file1 Dir1/Newfile1Name
Dieser Befehl kopiert file1 in Dir1 mit einem von Ihnen festgelegten Namen.
Um ein Verzeichnis und seinen Inhalt zu kopieren, verwenden Sie das Flag -r in diesem Format:
cp -r Directory1 NewLocation
Eine Datei verschieben
Die mv
Der Befehl funktioniert genauso wie der Kopierbefehl.
Um beispielsweise eine Datei an einen anderen Ort zu verschieben, geben Sie Folgendes ein:
mv fileName directory/path/destination
Datei erstellen
Mit dem Touch-Befehl können Sie eine neue Datei mit einer beliebigen Erweiterung erstellen.
Geben Sie im Terminal folgenden Befehl ein:
touch fileName
Zum Beispiel, um ein system.log zu erstellen Datei, geben Sie ein:
touch system.log
Erstelle ein Verzeichnis
Verwenden Sie zum Erstellen eines Verzeichnisses mkdir
Befehl. Geben Sie einen neuen Verzeichnisnamen oder vollständigen Pfad in diesem Format ein:
mkdir NewDirectoryName
Oder:
mkdir directory/path/NewDirectoryName
Eine Datei oder ein Verzeichnis löschen
Verwenden Sie zum Löschen einer Linux-Datei rm
in diesem Format:
rm fileName
Zusätzlich können Sie einen vollständigen Pfad eingeben:
rm /home/user/dir1/fileName
Zum Löschen eines Verzeichnisses , fügen Sie -r
hinzu Flag zum rm-Befehl.
Netzwerkinformationen anzeigen
Um den Status aller Netzwerkadapter anzuzeigen, verwenden Sie ifconfig
Befehl. Wenn Sie außerdem keine Optionen mit ifconfig verwenden, zeigt die Ausgabe nur aktive Schnittstellen an.

Löschen Sie den Terminalbildschirm
Um den aktuellen Arbeitsbereich Ihres Bash-Bildschirms zu löschen, geben Sie clear
ein in der Schale. Dieser Befehl löscht einen Teil des Bildschirms und verschiebt die vorherige Ausgabe nach oben.
Um die Ausgabe vom Terminal vollständig zu entfernen, verwenden Sie reset
Befehl.
Führen Sie einen Befehl auf einem Remote-Server von einem lokalen Computer aus
Diese Methode erstellt keine neue Shell. Stattdessen führt es einen Befehl aus und bringt den Benutzer zur lokalen Eingabeaufforderung zurück. Sie können in diesem Format eine Datei erstellen, Dateien kopieren oder andere SSH-Befehle ausführen.
Um einen Befehl remote vom lokalen Computer auszuführen, hängen Sie eine Anweisung an den SSH-Befehl an. Um beispielsweise eine Datei zu löschen, geben Sie Folgendes ein:
ssh test.server.com rm ~/Desktop/Dir1/sample4
Geben Sie das Passwort ein und die Datei auf dem Remote-Server wird gelöscht, ohne dass eine neue Shell erstellt wird.
SSH-Befehlszeilenoptionen
Das SSH-Tool enthält viele optionale Parameter. Die folgende Tabelle listet allgemeine SSH-Optionen und die entsprechenden Beschreibungen auf.
SSH-Option | Beschreibung |
-1 | Weist ssh an, Protokollversion 1 zu verwenden |
-2 | Weist ssh an, Protokollversion 2 zu verwenden. |
-4 | Erlaubt nur IPv4-Adressen. |
-6 | Erlaubt nur IPv6-Adressen. |
-A | Aktiviert die Verbindungsweiterleitung des Authentifizierungsagenten. Verwenden Sie diese Option mit Vorsicht. |
-a | Deaktiviert die Verbindungsweiterleitung des Authentifizierungsagenten. |
-b bind_address | Verwenden Sie diese Option auf dem lokalen Host mit mehr als einer Adresse, um die Quelladresse der Verbindung festzulegen. |
-C | Aktiviert die Datenkomprimierung für alle Dateien. Nur bei langsamen Verbindungen zu verwenden. |
-c Verschlüsselungsspezifikation | Verwenden Sie diese Option, um eine Verschlüsselungsspezifikation auszuwählen. Listen Sie die Werte durch ein Komma getrennt auf. |
-E log_fileName | Hängt Debug-Protokolle an log_file statt Standardfehler an. |
-f | Sendet ssh in den Hintergrund, noch bevor ein Passwort oder eine Passphrase eingegeben wird. |
-g | Erlaubt entfernten Hosts, sich mit Ports zu verbinden, die auf einem lokalen Rechner weitergeleitet werden. |
-q | Führt ssh im stillen Modus aus. Es unterdrückt die meisten Fehler- oder Warnmeldungen. |
-V | Zeigt die Version des SSH-Tools an und beendet sich. |
-v | Druckt Debugging-Meldungen für die SSH-Verbindung. Der ausführliche Modus ist hilfreich bei der Fehlersuche bei Konfigurationsproblemen. |
-X | Verwenden Sie diese Option, um die X11-Weiterleitung zu aktivieren. |
-x | X11-Weiterleitung deaktivieren. |