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.

So verwenden Sie Xdotool zum Stimulieren von Mausklicks und Tastenanschlägen in Linux
Xdotool ist ein kostenloses Open-Source-Befehlszeilentool zum Simulieren von Mausklicks und Tastenanschlägen. Dieser Artikel enthält eine kurze Anleit...
Top 5 ergonomische Computermaus-Produkte für Linux
Verursacht längere Computernutzung Schmerzen im Handgelenk oder in den Fingern?? Leiden Sie unter steifen Gelenken und müssen ständig die Hände schütt...
So ändern Sie die Maus- und Touchpad-Einstellungen mit Xinput in Linux
Die meisten Linux-Distributionen werden standardmäßig mit der Bibliothek „libinput“ ausgeliefert, um Eingabeereignisse auf einem System zu verarbeiten...