ssh

So führen Sie Linux-Befehle auf einem Remote-System über SSH aus?

So führen Sie Linux-Befehle auf einem Remote-System über SSH aus?

Um auf dem Remote-System zu arbeiten, melden Sie sich zuerst bei diesem System an, führen Befehle aus, um verschiedene Aufgaben auszuführen, und melden sich dann von dieser Sitzung ab. Selbst um einen einzelnen Befehl auf einem Remote-System auszuführen, müssen Sie alle Schritte durchlaufen. Wenn Sie nebeneinander auf dem lokalen und dem entfernten System arbeiten, müssen Sie mehrmals zwischen ihnen wechseln. Mehrmaliges An- und Abmelden von einem System kann nervig sein. Es sollte eine Möglichkeit geben, Befehle auf einem Remote-System auszuführen, ohne sich dort anzumelden.Glücklicherweise gibt es eine Möglichkeit, Ihnen zu zeigen, wie Sie Befehle auf einem Remote-System über SSH direkt von Ihrem lokalen Computer aus ausführen können.

Voraussetzungen

Als Voraussetzungen müssen Sie haben:

Hinweis: Die in diesem Tutorial erwähnten Befehle wurden unter Ubuntu 20 ausgeführt.04 LTS (Focal Fossa) Terminal, das über die Tastenkombination Strg+Alt+T geöffnet werden kann. Dieselben Befehle gelten auch für Linux Mint und Debian.

Ausführen von Linux-Befehlen auf dem Remote-System über SSH

Um einen Befehl auf einem Remote-System von Ihrem lokalen System aus auszuführen, verwenden Sie die folgende Syntax:

$ ssh

Wo Nutzername ist der Benutzer auf dem Remote-System, Hostname/IP_Adresse ist der Hostname oder die IP-Adresse des entfernten Systems. Das Befehl/Skript ist der Befehl oder das Skript, das Sie auf dem Remote-System ausführen möchten.

Wenn SSH auf einem anderen Port als dem Standardport ausgeführt wird, stellen Sie sicher, dass Sie dies mit dem Flag -p wie folgt erwähnen:

$ ssh -p

Einzelbefehl auf Remote-System ausführen

Nehmen wir an, Sie müssen den Hostnamen des Remote-Systems finden. In diesem Fall müssen Sie den Befehl auf dem lokalen System ausführen:

$ ssh [email protected] Hostname

Jetzt werden Sie aufgefordert, das Passwort für den Remote-Benutzer anzugeben. Geben Sie das Passwort ein und drücken Sie die Eingabetaste.

In der folgenden Ausgabe ist „mypc“ der Hostname des entfernten Systems.


Sie können den Befehl auch wie folgt in einfache (") oder doppelte Anführungszeichen ("") einschließen:

$ ssh [email protected] "Hostname"

Ausführen mehrerer Befehle auf dem Remote-System

Wenn Sie mehrere Befehle auf dem Remote-System über SSH ausführen müssen, trennen Sie diese mit (;) oder (&&) und schließen Sie sie in Anführungszeichen ("") ein. Wenn Sie die mehreren Befehle nicht in Anführungszeichen setzen, wird nur der erste Befehl auf dem Remote-Computer ausgeführt und die anderen Befehle werden auf dem lokalen Computer ausgeführt.

$ ssh   „Befehl1 && Befehl2“

oder

$ ssh   „Befehl1; Befehl2”

Verwenden des &&-Trennzeichens

Wenn Sie das Trennzeichen (&&) verwenden, wird der zweite Befehl nur ausgeführt, wenn der erste Befehl erfolgreich ausgeführt wurde. Um beispielsweise die Befehle „mkdir“ und „ls“ auf dem Remote-System auszuführen, müssen Sie auf Ihrem lokalen System den folgenden Befehl ausführen:

$ ssh -t [email protected] „mkdir myfiles && ls“

Jetzt werden Sie aufgefordert, das Passwort für den Remote-Benutzer anzugeben. Geben Sie das Passwort ein und drücken Sie die Eingabetaste.

Es folgt die Ausgabe der Befehle, die auf einem Remote-System ausgeführt werden. Der zweite Befehl „ls“ wird nur auf dem entfernten System ausgeführt, wenn der erste Befehl „mkdir“ erfolgreich ist.


Dieser Befehl ist auch nützlich, wenn Sie das System aktualisieren. Im Allgemeinen wird ein Systemupgrade nach einem Update durchgeführt. Daher können Sie mit dem obigen Befehl das System-Upgrade nur ausführen, wenn die Updates erfolgreich sind.

Verwendung der ; Separator

Wenn Sie das Trennzeichen (;) verwenden, wird der zweite Befehl ausgeführt, egal ob der erste Befehl erfolgreich war oder nicht. Um beispielsweise die Befehle „hostname“ und „ip r“ auf dem Remote-System auszuführen, müssen Sie den folgenden Befehl auf Ihrem lokalen System ausführen:

$ ssh [email protected] „Hostname; ip r”

Jetzt werden Sie aufgefordert, das Passwort für den Remote-Benutzer anzugeben. Geben Sie das Passwort ein und drücken Sie die Eingabetaste.

Es folgt die Ausgabe der Befehle, die auf einem Remote-System ausgeführt werden. Der zweite Befehl „ip r“ wird auch dann ausgeführt, wenn der erste Befehl nicht erfolgreich war.

Befehl auf Remote-System mit Sudo-Berechtigungen ausführen

Einige Befehle unter Linux erfordern erhöhte Rechte wie das Installieren oder Entfernen von Software, das Hinzufügen oder Entfernen eines Benutzers, das Ändern von Systemkonfigurationen usw. Wenn Sie einen Befehl auf den Remote-Systemen ausführen, die Sudo-Berechtigungen benötigen, werden Sie zuerst nach dem Passwort für den Remote-Benutzer und dann nach dem Sudo-Passwort gefragt, um den Befehl auszuführen.

Um beispielsweise System-Repositorys auf dem Remote-System zu aktualisieren, müssen Sie den folgenden Befehl auf Ihrem lokalen System ausführen:

$ ssh -t [email protected] „sudo apt-Update“

Es folgt die Ausgabe des Befehls, der auf einem Remote-System mit erhöhten Rechten ausgeführt wird.


Hinweis: Dann wird die Option -t hier verwendet, um tty . zwangsweise zuzuweisen.

Befehl auf Remote-System ausführen und Ausgabe auf lokalem System speichern

Die Ausgabe der auf den entfernten Systemen ausgeführten Befehle kann auch auf dem lokalen System gespeichert werden. Der folgende Befehl führt beispielsweise den Befehl ifconfig auf dem Remote-System aus und speichert dann seine Ausgabe in einer Datei namens ip.txt auf dem Desktop des lokalen Computers.

$ ssh -t [email protected] „ifconfig“ > ~/Desktop/ip.TXT

Lokales Skript auf Remote-System ausführen

Das auf dem lokalen System platzierte Skript kann auch auf dem entfernten System ausgeführt werden. Lassen Sie uns dies erklären, indem wir ein Skript namens sample erstellen.sh im lokalen System.

$ sudo nano probe.Sch

Fügen Sie die folgenden Zeilen in die Skriptdatei ein:

#!/bin/bash
Datum
Hostname
IP-Route
ping -c 3 google.com

Speichern und schließen Sie nun das Skript.


Um nun das Skriptbeispiel auszuführen.sh auf dem Remote-System, geben Sie den folgenden Befehl im Terminal aus:

$ ssh -t [email protected] 'bash -s; < sample.sh

Hier ist die Ausgabe, nachdem das Skript auf einem Remote-System ausgeführt wurde:


Das ist alles! In diesem Tutorial haben wir Ihnen gezeigt, wie Sie Befehle auf einem Remote-System über SSH ausführen. Es macht die Arbeit am Remote-System sehr einfach und erspart Ihnen auch das lästige mehrfache An- und Abmelden am Remote-System.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...