GNU/Linux >> LINUX-Kenntnisse >  >> Linux

SSH-Befehle in Linux mit Verwendungsbeispielen

SSH ist ein Netzwerkprotokoll für die sichere Anmeldung bei einem Remote-Computer und die Ausführung 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 unter 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 entfernter Server wird über eine IP-Adresse oder den Namen des Hosts verbunden. Verwenden Sie den folgenden Befehl, um eine SSH-Verbindung über eine IP-Adresse herzustellen:

ssh [ IP ADDRESS]

Um sich über den Namen mit ssh zu verbinden, verwenden Sie den folgenden Befehl:

ssh [ HOSTNAME ]

Um beispielsweise eine Verbindung zu einem Remote-Host mit der IP-Adresse 192.168.239.133 herzustellen, würde der Befehl wie folgt lauten.

$ ssh 192.168.239.133

Wenn Sie sich zum ersten Mal mit einem Host verbinden, 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 Benutzername

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

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Um beispielsweise 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]

3. SSH mit einer anderen Portnummer

Der SSH-Server hört 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 über eine andere Portnummer herzustellen, verwenden Sie das Flag -p, wie in der folgenden Syntax gezeigt.

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

Um beispielsweise 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

4. SSH ohne Passwort

In drei einfachen Schritten können Sie sich per ssh ohne Passwort mit Ihrem Remote-Host verbinden. Die drei erforderlichen Schritte zum Anmelden bei einem Remote-Server ohne Eingabe eines Kennworts lauten 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 zur Authentifizierung zwischen Clients und Servern verwendet.

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

$ ssh-keygen -t rsa

Geben Sie den Ort und die Paraphrase ein 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. Verwenden Sie zum Kopieren des öffentlichen SSH-Schlüssels auf den Remoteserver die folgende Syntax auf dem Hostcomputer.

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

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

$ ssh-copy-id [email protected]

Melden Sie sich aus der Ferne ohne Passwort an

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

ssh [USERNAME]@[HOSTNAME/IP ADDRESS]

Um beispielsweise 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]

5. Führen Sie mit SSH einen Befehl auf dem Remote-Server 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 lautet 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

Um beispielsweise das Datum des Kali-Benutzers vom Server mit der IP-Adresse 192.168.239.134 abzurufen, verwenden Sie den folgenden Befehl.

$ ssh [email protected] date

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

ssh USER1@SERVER1 'df -H'

Um beispielsweise die Speicherplatznutzung des Benutzers kali vom Server mit der IP-Adresse 192.168.239.134 abzurufen, verwenden Sie den folgenden Befehl.

$ ssh [email protected] 'df -H'

Verwenden Sie die folgende Syntax, um die letzten Neustartprotokolle des entfernten Benutzers zu überprüfen.

ssh USER1@SERVER1 "last reboot"

Um beispielsweise 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"

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 ist.

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

Zum Beispiel

$ ssh -C [email protected]

ssh -v

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

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

Zum Beispiel

$ ssh -v [email protected]

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 mehr als zwei IP-Adressen hat und Sie möglicherweise nicht wissen, welche IP-Adresse verwendet wird, um eine Verbindung zum SSH-Server herzustellen.

Beispiel:

$ ssh -b 192.168.239.133 [email protected]

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

ssh -F

Die Option -F wird zusammen mit dem Befehl ssh verwendet, um eine Konfiguration pro Benutzer 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 lautet wie folgt.

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

Führen Sie beispielsweise den folgenden Befehl aus, um eine Verbindung zum Remote-Host an Port 3306 des Benutzers kali mit der IP 192.168.239.134 vom lokalen Host 192.168.239.133 an Port 3336 herzustellen.

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

ssh -R

Die Option -R wird zusammen mit dem SSH-Befehl verwendet, um die Remote-Portweiterleitung zu aktivieren. Das 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-Portweiterleitung lautet wie folgt.

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

Beispiel:

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

Der Befehl lässt ssh den ssh-Server an Port 3336 abhören und den gesamten Datenverkehr an Port 3000 tunneln.

ssh -C -D

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

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

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

Beispiel:

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

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

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 vertrauenswürdige X11-Weiterleitung verwendet. Das bedeutet, dass der entfernte X11 vollen Zugriff auf die ursprüngliche X11-Anzeige hat.

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

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

$ ssh -Y 192.168.239.134

ssh -o

Die Option -o kann mit anderen Optionen verwendet werden.

Beispiel:

$ 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.

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

Option Beschreibung
-A Es ermöglicht die Weiterleitung der Authentifizierungsagentenverbindung.
-a Es deaktiviert die Weiterleitung der Verbindung des Authentifizierungsagenten.
-b Es wird verwendet, um Quelladressen zu binden.
-C Es wird zur Datenkomprimierung verwendet.
-c cipher_spec Es wählt die Verschlüsselungsspezifikation zum Verschlüsseln der Sitzung aus.
-D Es ist für die dynamische Portweiterleitung auf Anwendungsebene verantwortlich.
-E Protokolldatei Es fügt Debug-Protokolle an log_file anstelle von Standardfehlern an.
-F Konfigurationsdatei Es gibt eine Konfigurationsdatei pro Benutzer an.
-g Es ermöglicht entfernten Hosts, sich mit lokalen weitergeleiteten Ports zu verbinden.
-i Identitätsdatei Er liest den privaten Schlüssel für die Public-Key-Authentifizierung.
-j Es gibt eine ProxyJump-Konfigurationsanweisung an.
-l Anmeldename Es gibt den Benutzer an, der sich beim Remote-Rechner anmeldet.
-p Port Es wird verwendet, um den Port für die Verbindung zum Remote-Host anzugeben.
-q Es ist der leise Modus.
-V Ausführlicher Modus.
-X Es aktiviert die X11-Weiterleitung
-Y Es aktiviert die vertrauenswürdige X11-Weiterleitung

Schlussfolgerung

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


Linux
  1. Senden Sie mit Terminator Befehle an mehrere SSH-Sitzungen

  2. wc Linux-Befehl mit Beispielen

  3. 19 Gängige SSH-Befehle in Linux mit Beispielen

  4. Mehr als 10 Linux-VI-Befehle mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Nmap-Befehle mit Beispielen

RPM-Befehle in Linux mit Beispielen

Ausführen von Befehlen auf Remote-Linux-Systemen über SSH

Verwendung von SSH-Befehlen in Linux/Unix-Systemen

Verwendung des Linux-mv-Befehls mit Beispielen

Verwendung des Linux-Befehls sed mit Beispielen