SSH-Befehle unter Linux mit Anwendungsbeispielen

SSH ist ein Netzwerkprotokoll zum sicheren Anmelden bei einem Remote-Computer und zum Ausführen von Befehlen. Es wurde entwickelt und erstellt, um die beste Sicherheit beim Fernzugriff auf einen anderen Computer zu bieten. Immer wenn Daten von einem Computer an das Netzwerk gesendet werden, verschlüsselt ssh sie automatisch.

Um SSH zu verwenden, sollte auf dem Zielcomputer eine SSH-Serveranwendung installiert sein, da SSH ein Client-Server-Modell ist. Ein SSH-Server lauscht standardmäßig auf dem Standard-TCP-Port 22. Der SSH-Client ist standardmäßig auf allen Linux-Distributionen verfügbar.

In diesem Tutorial lernen wir SSH-Befehle in Linux mit Anwendungsbeispielen.

Voraussetzungen

  • Ein SSH-Client
  • Ein SSH-Server
  • IP-Adresse oder Name des Remote-Servers

1. So führen Sie eine SSH-Verbindung zu einem Remote-Server durch

Ein Remote-Server wird über eine IP-Adresse oder den Namen des Hosts verbunden. Um eine SSH-Verbindung über eine IP-Adresse herzustellen, verwenden Sie den folgenden Befehl:

ssh [ IP ADDRESS]

Um über den Namen eine Verbindung zu ssh herzustellen, verwenden Sie den folgenden Befehl:

ssh [ HOSTNAME ]

Für example, um über die IP-Adresse 192.168.239.133 eine Verbindung zu einem Remote-Host herzustellen, lautet der Befehl wie folgt.

$ ssh 192.168.239.133

Wenn Sie zum ersten Mal eine Verbindung zu einem Host herstellen, wird eine Meldung angezeigt, in der Sie gefragt werden, ob Sie die Verbindung fortsetzen möchten. Geben Sie yes ein und geben Sie dann das Passwort für Ihren Remote-Host ein.

2. SSH mit Benutzernamen

SSH verwendet beim Verbindungsversuch den aktuellen Benutzer des Remote-Servers. Um eine Verbindung zu ssh mit dem Benutzernamen herzustellen, verwenden Sie die folgende Syntax.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Für example, um eine Verbindung zum Remote-Host mit der IP-Adresse 192.168.239.134 mit einem Kali-Benutzernamen herzustellen, verwenden Sie den folgenden Befehl.

$ ssh [email protected]

  SSH mit Benutzername

3. SSH mit einer anderen Portnummer

Der SSH-Server lauscht standardmäßig auf TCP-Port 22, aber wenn Sie ihn ändern möchten, müssen Sie den Port im Befehl angeben.

Um eine Verbindung zu einem Remote-Host mit einer anderen Portnummer herzustellen, verwenden Sie das Flag -p, wie in der folgenden Syntax gezeigt.

ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]

Für example, um eine Verbindung zum Remote-Host mit der IP-Adresse 192.168.239.134 über die Portnummer 223 herzustellen, verwenden Sie den folgenden Befehl.

$ ssh 192.168.239.134 -p 223

  SSH mit Portnummer 223

4. SSH ohne Passwort

In drei einfachen Schritten können Sie sich ohne Passwort per ssh mit Ihrem Remote-Host verbinden. Die drei Schritte, die erforderlich sind, um sich bei einem Remote-Server anzumelden, ohne ein Kennwort einzugeben, sind wie folgt.

SSH-Schlüssel generieren

Um SSH-Schlüssel zu generieren, wird ssh-keygen verwendet, das die öffentlichen und privaten Schlüssel erstellt. Diese Schlüsselpaare werden verwendet, um sich zwischen Clients und Servern zu authentifizieren.

Um ein Schlüsselpaar zu erstellen, geben Sie den folgenden Befehl auf dem Client-Rechner ein.

$ ssh-keygen -t rsa

SSH-Schlüssel generieren

Enter die Position und Paraphrase, oder drücken Sie die Eingabetaste, um die Standardeinstellungen zu verwenden.

Öffentlichen SSH-Schlüssel kopieren

Sie müssen den öffentlichen SSH-Schlüssel auf einen Remote-Server kopieren, um das Schlüsselpaar zu verwenden. Um den öffentlichen SSH-Schlüssel auf den Remoteserver zu kopieren, verwenden Sie die folgende Syntax auf dem Hostcomputer.

ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]

Um den SSH-Schlüssel von der IP-Adresse 192.168.239.134 zu kopieren, verwenden Sie den folgenden Befehl.

$ ssh-copy-id [email protected]

Öffentlichen SSH-Schlüssel kopieren

Melden Sie sich aus der Ferne ohne Passwort an

Sie können sich jetzt ohne Passwort mit dem folgenden Befehl am Remote-Server anmelden.

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Für example, um eine Verbindung zum Remote-Host mit der IP-Adresse 192.168.239.134 mit einem Kali-Benutzernamen herzustellen, verwenden Sie den folgenden Befehl.

$ ssh [email protected]

Melden Sie sich aus der Ferne ohne Passwort an

5. Führen Sie einen Befehl auf dem Remote-Server mit SSH aus

Der ssh-Befehl kann verwendet werden, um sich beim Remote-Server anzumelden. Es kann auch verwendet werden, um Befehle auf dem Remote-Server auszuführen.

Die grundlegende Syntax zum Ausführen von Befehlen über ssh ist wie folgt.

ssh USER1@SERVER1 COMMAND1

ssh USER1@SERVER1 'COMMAND2'

ssh USER1@SERVER1 'COMMAND1 | COMMAND2'

ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"

Verwenden Sie die folgende Syntax, um Datum und Uhrzeit des Remote-Servers abzurufen:

ssh USER1@SERVER1 date

Für example, um das Datum des Kali-Benutzers vom Server mit der IP-Adresse 192.168.239.134 zu erhalten, verwenden Sie den folgenden Befehl.

$ ssh [email protected] date

Remote-Server-Datum

Um die Speicherplatznutzung des Remote-Servers zu überprüfen, lautet die Syntax wie folgt.

ssh USER1@SERVER1 'df -H'

Für example, um die Speicherplatznutzung des kali-Benutzers vom Server mit der IP-Adresse 192.168.239.134 abzurufen, verwenden Sie den folgenden Befehl.

$ ssh [email protected] 'df -H'

Speicherplatznutzung des Remote-Servers

Um die letzten Neustartprotokolle des Remotebenutzers zu überprüfen, verwenden Sie die folgende Syntax.

ssh USER1@SERVER1 "last reboot"

Für example, um die letzten Neustartprotokolle von Kali-Benutzern vom Server mit der IP-Adresse 192.168.239.134 abzurufen, verwenden Sie den folgenden Befehl.

$ ssh [email protected] "last reboot"

Protokolle des letzten Neustarts des Remote-Benutzers

SSH-Befehlszeilenoptionen

Sehen wir uns einige der Optionen an, die mit dem Befehl ssh verfügbar sind.

ssh -C

Verwenden Sie die Option -C mit ssh, um die Komprimierung aller vom Remote-Server empfangenen oder übertragenen Daten anzufordern, wie in der folgenden Syntax zu sehen.

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

Zum Beispiel,

$ ssh -C [email protected]

ssh -v

Die Option -v wird mit dem ssh-Befehl verwendet, um den ssh-Client zu debuggen. Folgendes ist die Syntax:

$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]

Zum Beispiel,

$ ssh -v [email protected]

SSH-Client debuggen

ssh -b

Die Option -b wird verwendet, um eine IP-Adresse an eine SSH-Verbindung zu binden. Die IP-Adresse wird als Quelladresse der SSH-Verbindung verwendet. Dies wird verwendet, wenn ein Client über mehr als zwei IP-Adressen verfügt und Sie möglicherweise nicht wissen, welche IP-Adresse zum Herstellen einer Verbindung zum SSH-Server verwendet wird.

Für example,

$ ssh -b 192.168.239.133 [email protected]

Der Befehl bindet die IP-Adresse an den Remote-Server. Wir können es mit dem überprüfen netstat |grep ssh Befehl, um die Verbindung zu überprüfen.

IP-Adresse binden

ssh -F

Die Option -F wird zusammen mit dem Befehl ssh verwendet, um eine benutzerspezifische Konfiguration anzugeben. Die Standardkonfigurationsdatei ist ~/.ssh/config.

Um eine bestimmte Konfigurationsdatei zu verwenden, verwenden Sie die Option -F wie folgt.

$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]

Zum Beispiel,

$ ssh -F /etc/ssh/ssh_config.d [email protected]

ssh -L

Die Option -L wird für die lokale Portweiterleitung verwendet. Die lokale Portweiterleitung ermöglicht es uns, den Datenverkehr von unserem Host über einen Proxy zu einem Zielport zu leiten.

Die grundlegende Syntax für die lokale Portweiterleitung ist die folgende.

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Für example, führen Sie den folgenden Befehl aus, um eine Verbindung zum Remote-Host auf Port 3306 des Kali-Benutzers mit IP 192.168.239.134 vom Localhost 192.168.239.133 auf Port 3336 herzustellen.

$ ssh -L 3336:192.168.239.133:3306 [email protected]

Lokale Portweiterleitung

ssh -R

Die Option -R wird zusammen mit dem SSH-Befehl verwendet, um die Remote-Portweiterleitung zu aktivieren. Dies bedeutet, dass Sie einen Port auf dem Remote-Server an einen Port auf Ihrem lokalen Computer weiterleiten können, der dann an einen Port auf dem Zielcomputer weitergeleitet wird.

Die grundlegende Syntax für die Remote-Port-Weiterleitung ist die folgende.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Für example,

$ ssh -R 3336:192.168.239.133:3000 [email protected]

Der Befehl lässt ssh auf den ssh-Server in Port 3336 hören und den gesamten Verkehr auf Port 3000 tunneln.

Remote-Port-Weiterleitung

ssh -C -D

Die Option -D aktiviert die dynamische Portweiterleitung. Der übliche SOCKS-Port ist 1001, jedoch kann jede beliebige Portnummer verwendet werden; dennoch funktionieren einige Programme nur auf dem 1001-Port.

Die grundlegende Syntax für die dynamische Weiterleitung lautet wie folgt.

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Für example,

$ sudo ssh -C -D 1001 [email protected]

Das -D spezifiziert die dynamische Portweiterleitung im 1001-Port und -C aktiviert die Komprimierung.

Dynamische Portweiterleitung

ssh -X

Die Option -X wird zusammen mit ssh für die X11-Weiterleitung verwendet. Das Folgende ist die Syntax für die X11-Weiterleitung.

ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]

Verwenden Sie den folgenden Befehl, um die X11-Weiterleitung für den kali-Benutzer mit der IP-Adresse 192.168.239.134 zu aktivieren.

$ ssh -X 192.168.239.134

ssh -Y

Die Option -Y wird zusammen mit ssh für die Trusted X11-Weiterleitung verwendet. Dies bedeutet, dass der Remote-X11 vollen Zugriff auf das ursprüngliche X11-Display hat.

ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]

Verwenden Sie den folgenden Befehl, um die Trusted X11-Weiterleitung für den kali-Benutzer mit der IP-Adresse 192.168.239.134 zu aktivieren.

$ ssh -Y 192.168.239.134

Vertrauenswürdige Weiterleitung

ssh -o

Die Option -o kann mit anderen Optionen verwendet werden.

Für example,

$ ssh -o "batchmode=yes" [email protected]

Wenn Sie ssh -o “batchmode=yes” verwenden, wird der Befehl erfolgreich auf dem Remote-Computer ausgeführt, wenn die kennwortlose Konnektivität aktiviert ist, andernfalls wird ein Fehler zurückgegeben.

ssh -o Batchmode = yes

Einige der wichtigsten Befehlszeilenoptionen sind in der folgenden Tabelle aufgeführt.

MöglichkeitBeschreibung
-EINEs ermöglicht die Weiterleitung der Verbindung zum Authentifizierungsagenten.
-einEs deaktiviert die Weiterleitung der Verbindung zum Authentifizierungsagenten.
-BEs wird verwendet, um Quelladressen zu binden.
-CEs wird zur Datenkomprimierung verwendet.
-c cipher_specEs wählt die Verschlüsselungsspezifikation zum Verschlüsseln der Sitzung aus.
-DEs ist für die dynamische Portweiterleitung auf Anwendungsebene verantwortlich.
-E log_fileEs hängt Debug-Protokolle an log_file anstelle von Standardfehlern an.
-F KonfigurationsdateiEs gibt eine benutzerspezifische Konfigurationsdatei an.
-gEs ermöglicht Remote-Hosts, sich mit lokalen weitergeleiteten Ports zu verbinden.
-i IdentitätsdateiEs liest den privaten Schlüssel für die Public-Key-Authentifizierung.
-JEs gibt eine ProxyJump-Konfigurationsdirektive an.
-l Login_NameEs gibt den Benutzer an, der sich beim Remote-Rechner anmeldet.
-p PortEs wird verwendet, um den Port anzugeben, der mit dem Remote-Host verbunden werden soll.
-QEs ist der leise Modus.
-VAusführlicher Modus.
-XEs ermöglicht die X11-Weiterleitung
-YEs ermöglicht die Trusted X11-Weiterleitung

Abschluss

In diesem Tutorial haben wir zusammen mit nützlichen Beispielen gelernt, wie man den ssh-Befehl verwendet. Vielen Dank fürs Lesen, bitte geben Sie Ihr Feedback und Ihre Vorschläge im Kommentarbereich unten ab.