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.