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:
- Ubuntu-Rechner
- Benutzer mit sudo-Berechtigungen
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:
$ sshWo 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 -pEinzelbefehl 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] HostnameJetzt 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:
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.
$ sshoder
$ sshVerwenden 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.SchFügen Sie die folgenden Zeilen in die Skriptdatei ein:
#!/bin/bashDatum
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:
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.