Wenn Sie sich auch nur ein wenig mit SSH auskennen, wissen Sie, dass Sie damit eine Verbindung zu entfernten Linux-Systemen herstellen können.
Die Verwendung von SSH zur Verbindung mit einem Remote-System ist einfach. Alles, was Sie tun müssen, ist, einen Befehl wie diesen zu verwenden:
ssh [email protected]_IP
Dadurch wird eine Verbindung zum Standard-SSH-Port 22 hergestellt. Sie können den Port auch angeben, wenn Sie möchten.
Nun, das ist alles schlicht und einfach, wenn Sie nur einen Server haben. Selbst wenn Sie sich nicht an die IP-Adresse des Servers erinnern, können Sie mit der berühmten Terminal-Tastaturkombination Strg+R eine Rückwärtssuche zum Verlauf durchführen und den SSH-Befehl finden, den Sie in der Vergangenheit verwendet haben.
Aber die Dinge werden kompliziert, wenn Sie mehrere Server verwalten müssen. Ich habe ungefähr zehn Server, mit denen ich mich von Zeit zu Zeit verbinde. Einige sind Produktionsserver und andere Testserver.
Jetzt ist es nicht einfach, den Überblick über diese Server zu behalten. Auch wenn ich die SSH-Befehle aus der Historie herausfinde, ist es schwierig zu erraten, welche IP zu welchem Server gehört.
Natürlich kann ich meine Dashboards auf Linode, UpCloud, DigitalOcean und Google Cloud öffnen, um die IP abzurufen oder eine Liste auf meinem lokalen System zu führen.
Ein besserer und einfacherer Weg ist die Verwendung der SSH-Konfigurationsdatei.
Verwendung der SSH-Konfigurationsdatei zur einfachen Verbindung mit Remote-Servern
Mit der SSH-Konfigurationsdatei können Sie verschiedene Profile für verschiedene Hostkonfigurationen erstellen. Es gibt keine Begrenzung für solche Profile und Sie können so viele wie möglich hinzufügen.
Wenn Sie sich also über SSH mit mehreren Remote-Systemen verbinden, ist das Erstellen von SSH-Profilen ein guter Schritt, um Zeit zu sparen.
Lassen Sie mich Ihnen zeigen, wie man es benutzt.
Schritt 1:Erstellen Sie die SSH-Konfigurationsdatei
Wenn Sie SSH installieren, wird automatisch ein ~/.ssh-Verzeichnis erstellt. Diese Direktive enthält Ihren öffentlichen Schlüssel, den privaten Schlüssel und eine known_hosts-Datei. Ihre Konfiguration wird auch hier gespeichert.
Zumindest unter Ubuntu wird die SSH-Konfigurationsdatei nicht standardmäßig erstellt. Sie können diese Datei ganz einfach mit dem Touch-Befehl wie folgt erstellen:
touch ~/.ssh/config
Schritt 2:Fügen Sie ein SSH-Profil in der Konfigurationsdatei hinzu
Nachdem Sie nun die SSH-Konfigurationsdatei haben, können Sie sie mit Vim oder Nano bearbeiten. Lassen Sie mich Ihnen ein Beispiel für die Syntax zeigen, der Sie folgen sollten.
Nehmen wir an, Sie verbinden sich mit einem Server mit der IP 275.128.172.46. Ihr Benutzername ist Alice und der Server wird zum Hosten Ihrer Website verwendet. Um die SSH-Sicherheit zu erhöhen, verwenden Sie Port 1500 anstelle des standardmäßigen SSH-Ports 22.
Sie können all diese Informationen wie folgt in Ihre Datei ~/.ssh/config einfügen:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Speichern Sie einfach die Informationen in der Datei. Es ist nicht erforderlich, einen Dienst neu zu starten.
Anstatt nun einen langen Befehl wie diesen zu schreiben:
ssh [email protected] -p 1500
Sie können einfach diesen Befehl verwenden (Tab-Vervollständigung funktioniert auch):
ssh website
Wenn Sie den obigen Befehl ausführen, sucht ssh in ~/.ssh/config nach einer Website mit dem Namen Host. Wenn es einen Host mit diesem Namen findet, erhält es alle zugehörigen Informationen und verwendet es zum Herstellen einer SSH-Verbindung.
Sie fragen sich vielleicht über ein paar Dinge, also erwähne ich sie hier:
- Bei der Eingabe der Host-Informationen gibt es keine Leerzeichen- oder Tabulator-Einrückungsbeschränkung. Leerzeichen oder Tabulatoren werden verwendet, um die Konfigurationsdatei leicht verständlich zu machen.
- Der Hostname kann die IP-Adresse des Servers oder ein Hostname sein, der in Ihrem Netzwerk aufgelöst werden kann.
- Alle Parameter wie Hostname, Benutzer und Port sind optional. Ich persönlich rate jedoch, zumindest den Hostnamen beizubehalten, da Sie diesen meistens benötigen (und vergessen).
- Wenn Ihre SSH-Konfigurationsdatei falsch konfiguriert ist, führt dies zu einem Fehler, wenn Sie versuchen, sie für eine SSH-Verbindung zu verwenden.
- Passwörter können nicht in der SSH-Konfiguration gespeichert werden. Ich empfehle Ihnen, Ihren öffentlichen SSH-Schlüssel zum einfachen Zugriff auf dem Server hinzuzufügen.
Schritt 3:Hinzufügen mehrerer Profile zur SSH-Konfigurationsdatei
Der vorherige Schritt gab Ihnen eine Vorstellung davon, wie Sie ein SSH-Profil hinzufügen. Kommen wir zum nächsten Schritt, indem wir mehrere Profile hinzufügen.
So sieht die SSH-Konfigurationsdatei jetzt aus:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Host forum-server
Hostname 275.128.172.47
User alice
Host main-server
Hostname 275.128.172.49
Host common-test-server
Hostname test-server
Host *
User root
Dieses Mal habe ich vier verschiedene SSH-Profile hinzugefügt.
Haben Sie den Host * bemerkt Eintrag am Ende der Datei? Sie können diesen Eintrag verwenden, um einen allen Profilen gemeinsamen Parameter hinzuzufügen, wenn dieser Parameter nicht explizit für das Profil erwähnt wurde.
Wenn ich also versuche, das SSH-Profil des Hauptservers zu verwenden, nimmt es automatisch den Root-Benutzer.
ssh main-server =ssh [email protected]
Reihenfolge der SSH-Konfiguration
Die ssh-Konfiguration folgt der folgenden Reihenfolge:
- Befehlszeilenoptionen
- Konfigurationsdatei des Benutzers (~/.ssh/config)
- systemweite Konfigurationsdatei (/etc/ssh/ssh_config)
Das bedeutet, dass dem von Ihnen eingegebenen Befehl Priorität eingeräumt wird und dann in ~/.ssh/config und dann in /etc/ssh/ssh_config.
nachgesehen wirdWenn Sie also ein Profil überschreiben möchten, können Sie dies mit der Option -o des Befehls ssh tun.
Wenn ich zum Beispiel diesen Befehl verwende:
ssh -o "User=bob" website
Es wird der Benutzer bob anstelle des Benutzers alice, wie in ~/.ssh/config (im vorherigen Schritt) definiert, verwendet.
Die SSH-Konfiguration bietet noch viel mehr
Um ehrlich zu sein, gibt es noch so viel mehr in der SSH-Konfigurationsdatei, die nicht in einem einzigen Artikel behandelt werden kann. Sie können Namens-/IP-Abgleich, Subnetze und vieles mehr verwenden.
Der Zweck dieses Artikels bestand darin, Ihnen die SSH-Konfiguration vorzustellen und Ihnen dabei zu helfen, SSH-Profile für eine einfache Verbindung zu verschiedenen Remote-Linux-Systemen zu erstellen.
Sie können sich jederzeit auf die Manpage von ssh_config beziehen, um mehr über die Parameter zu erfahren, die Sie beim Erstellen Ihrer SSH-Konfigurationsdatei verwenden können.
Ich hoffe, dieser SSH-Tipp war hilfreich für Sie. Wenn Sie bereits die SSH-Konfigurationsdatei verwenden und einen raffinierten Tipp bei sich haben, teilen Sie ihn uns im Kommentarbereich mit.