Effizientes Verwalten von Remote-SSH-Verbindungen mit diesen Linux-Befehlen

Wenn Sie einen oder mehrere Remote-Server ausführen, verbringen Sie normalerweise Zeit damit, sich den ganzen Tag über ständig anzumelden.

Das muss aber nicht so sein. Es ist an der Zeit, dass Sie lernen, wie Sie sich mit nur einem Alias ​​effizient über SSH anmelden, einzelne Dateien oder Verzeichnisse übertragen, Remote-SSH-Befehle ausführen und Remote-Server mühelos in lokalen Verzeichnissen bereitstellen.

SSH-Konfigurationsdatei

Eine große Zeitersparnis ist die SSH-Konfigurationsdatei unter ~ / .ssh / config . Erstellen Sie zunächst ein Verzeichnis zum Speichern aller SSH-Schlüssel, mit denen Sie sich mit dem folgenden Befehl bei Servern anmelden:

 mkdir -m 0600 $HOME/.ssh_keys

Kopieren Sie nun alle Ihre SSH-Schlüsseldateien in dieses Verzeichnis (z. B. clienta.pem, clientb.pem usw.). Öffnen Sie als Nächstes die Datei ~ / .ssh / config in einem Texteditor, indem Sie den folgenden Befehl ausführen :

 nano ~/.ssh/config

Unten finden Sie einen Beispieleintrag, mit dem eine SSH-Verbindung mit einem Remote-Server hergestellt wird:

 host clienta
 hostname 124.58.2276.80
 user ubuntu
 IdentityFile ~/.ssh_keys/clienta.pem

Fügen Sie der Datei ~ / .ssh / config Zeilenabschnitte wie oben hinzu, einen für jeden gewünschten Server. Speichern und schließen Sie die Datei, indem Sie Strg + X drücken und der Eingabeaufforderung folgen. Nach dem Speichern können Sie sich jetzt über SSH von jedem Verzeichnis innerhalb des Terminals aus mit dem einfachen Befehl bei jedem Server anmelden:

 ssh clienta

Dadurch werden Sie sofort mit den Informationen unter dem Clienta- Host, den Sie in der Datei ~ / .ssh / config angegeben haben, beim Server angemeldet .

Dateien mit Scp / Rcp übertragen

Ohne eine dauerhafte Anmeldesitzung zu erstellen, können Sie mit dem Befehl scp ganz einfach einzelne Dateien oder Verzeichnisse auf einen Remote-Server hochladen, z.

 scp report.pdf clienta:~/

Mit dem obigen Befehl wird die Datei report.pdf von Ihrem lokalen Computer in das Ausgangsverzeichnis des Clienta- Servers hochgeladen, den Sie im obigen Abschnitt definiert haben. Sie können in ein anderes Verzeichnis als das Ausgangsverzeichnis hochladen, z.

 scp about.html clienta:/home/clienta/public_html

Mit dem obigen Befehl wird die Datei about.html in das Verzeichnis / home / client / public_html auf dem Remote- Clienta- Server hochgeladen . Es ist auch möglich, ganze Verzeichnisse mit der Option -r hochzuladen, z.

 scp -r Documents clienta:~/docs

Dadurch wird das gesamte Verzeichnis ~ / Documents von Ihrem lokalen Computer in das Verzeichnis ~ / docs des Remote-Servers hochgeladen.

Dateien herunterladen

Ebenso können Sie Dateien oder Verzeichnisse auf Ihren lokalen Computer herunterladen, ohne eine dauerhafte Anmeldesitzung mit dem Befehl rcp zu erstellen, z.

 rcp clienta:~/public_html/about.html myproject/about.html

Mit dem obigen Befehl wird die Datei public_html / about.html vom Remote- Clienta- Server heruntergeladen und in der Datei projects / about.html auf Ihrem lokalen Computer abgelegt .

Führen Sie Remote-SSH-Befehle aus

Ein weiterer schneller Tipp ist, dass Sie einzelne Linux-Befehle auf einem Remote-Server ohne dauerhafte Anmeldesitzung ausführen können, z.

 ssh clienta ls

Mit dem obigen Befehl wird der Befehl ls auf dem Remote-Client> -Server ausgeführt und alle Dateien / Verzeichnisse aufgelistet, ohne dass Sie am Server angemeldet bleiben. Wenn Sie beispielsweise einen Server neu starten möchten, können Sie Folgendes verwenden:

 ssh clienta /sbin/shutdown -rf now

Lokales / bin-Verzeichnis

Lassen Sie uns dies erweitern, indem Sie eine einfache Bereitstellung auf Remote-Servern ermöglichen, indem Sie ein Verzeichnis / bin / erstellen, das für unser Benutzerkonto lokal ist. Öffnen Sie das Terminal auf Ihrem Computer und erstellen Sie ein Verzeichnis / bin /, indem Sie den folgenden Befehl ausführen:

 mkdir -m 0755 ~/bin

Öffnen Sie als Nächstes die Datei ~ / .profile in einem Texteditor mit dem folgenden Befehl:

 nano $HOME/.profile

Scrollen Sie bis zum Ende der Datei und fügen Sie die folgenden Zeilen hinzu, indem Sie sie in Ihre Zwischenablage kopieren. Drücken Sie dann innerhalb des Terminals Strg + Umschalt + V :

 if [ -d "$HOME/bin" ] ; then
 PATH="$HOME/bin:$PATH"
 fi

Speichern und schließen Sie die Datei, indem Sie Strg + X drücken, und folgen Sie den Anweisungen. Dadurch wird die .profile- Datei gespeichert, die das neu erstellte lokale Verzeichnis / bin / auf Befehle überprüft, die Sie ausführen möchten.

Hinzufügen von Remote Mount-Befehlen

Überprüfen Sie zunächst mit dem folgenden Befehl, ob sshfs auf Ihrem Computer installiert ist.

 sshfs --version

Wenn dies die aktuelle Version von sshfs druckt , sind Sie fertig . Andernfalls können Sie sshfs mit dem folgenden Befehl installieren, wenn der Fehler "Befehl nicht gefunden" angezeigt wird :

 sudo apt-get -y install sshfs

Erstellen Sie nun ein Verzeichnis / mnt /, das alle bereitgestellten Verzeichnisse für unsere Remoteserver enthält. Führen Sie im Terminal die folgenden Befehle aus:

 mkdir -m 0755 ~/mnt
 mkdir -m 0755 ~/mnt/clienta
 mkdir -m 0755 ~/mnt/clientb

Erstellen Sie weiterhin ein Unterverzeichnis für jeden Remote-Server, auf den Sie möglicherweise zugreifen können. Als Nächstes erstellen wir die Shell-Befehle, die wir ausführen werden, und öffnen Sie beispielsweise für den Clienta- Server eine Datei, indem Sie den folgenden Befehl im Terminal ausführen :

 nano ~/bin/mount_clienta

Ändern Sie die folgende Zeile nach Bedarf mit den richtigen Serverinformationen, kopieren Sie sie und fügen Sie sie in den leeren Texteditor innerhalb des Terminals ein, indem Sie Strg + Umschalt + V drücken:

 #!/bin/bash
 sshfs -o IdentityFile=~/.ssh_keys/clienta.pem [email protected]:/var/www ~/mnt/clienta

Speichern und schließen Sie die Datei, indem Sie Strg + X drücken, und befolgen Sie die Anweisungen zum Schließen der Datei. Ändern Sie abschließend die Berechtigungen der Datei so, dass sie ausführbar ist, indem Sie den folgenden Befehl ausführen:

 chmod 0755 ~/bin/mount_clienta

Jedes Mal, wenn Sie auf den Remote-Server von clienta zugreifen müssen, um Dateien von / zu diesem Server zu übertragen, können Sie einfach den Befehl ausführen:

 mount_clienta

Das Verzeichnis auf Ihrem lokalen Computer unter ~ / mnt / clienta wird jetzt im Verzeichnis / var / www des Remote-Servers bereitgestellt. Sie können wie jedes lokale Verzeichnis mit dem Kopieren von Dateien in und aus dem Verzeichnis beginnen, und die erforderlichen Vorgänge werden auf dem Remoteserver ausgeführt.

Effizienteres Verbindungsmanagement

Hoffentlich haben die oben genannten Tipps dazu beigetragen, die Verwaltung Ihrer Verbindungen zu Remoteservern zu optimieren und effizienter zu gestalten. In diesem Artikel haben Sie alles über die Datei ~ / .ssh / config erfahren, mit der Sie sich über SSH nur mit einem Alias ​​anmelden, einzelne Dateien / Verzeichnisse übertragen, Remote-SSH-Befehle ausführen und ein lokales Verzeichnis einfach auf Remote-Servern bereitstellen können.