Wie ein SSH-Config-Datei in Windows und Linux

0
843

Ihre SSH-Konfigurationsdatei können Sie definieren, welche Einstellungen für die einzelnen SSH-host, macht die Verbindung zu diesem host viel einfacher. Durch die Definition viele dieser Häufig oder selten, Eigenschaften in der Datei, es entfällt die Notwendigkeit zu erinnern, diesen parameter legen Sie jedes mal, wenn eine Verbindung benötigt wird.

Definieren Sie eine SSH-Verbindung

Wenn die Datei ~/.ssh/config nicht existiert, wird Sie vielleicht gehen Sie vor und erstellen Sie diese jetzt. In der Regel, diese Datei existiert .ssh “versteckten” Verzeichnis, versteckt, nur, weil die meisten Betriebssysteme nicht zeigen, Verzeichnisse vorangestellt durch eine .. Auch dieses Verzeichnis befindet sich normalerweise im home-Verzeichnis, oder das home-Verzeichnis des Benutzers ausgeführt, ssh, daher die ~ notation, was bedeutet, das home-Verzeichnis.

Es ist wichtig zu halten ein Auge auf die Berechtigungen innerhalb der .ssh-Ordner. Die meisten SSH-clients die Dateien werden den Modus 600 in diesem Ordner. Wenn verweisen auf diesen Ordner aus dem Windows-Subsystem für Linux, sollten Sie sicherstellen, dass chmod 600 ~\.ssh\*

Also, was macht eine einfache SSH-Verbindung Aussehen wie in dieser Datei? Ein Beispiel für eine einfache Konfiguration ist weiter unten.

Meine Host-ssh-host
HostName 10.0.0.5
Port 22
Benutzer myuser

Wie können Sie sagen, von den oben genannten Konfiguration, das ist etwa so grundlegenden Fragen wie man bekommen kann. In der Tat, können Sie weglassen der Hafen ist nicht unbedingt notwendig, da 22 ist der Standard-SSH-port. Durch die Definition dieser Verbindung, auf den Befehl Linie, können wir einfach Folgendes tun.

ssh my-ssh-host

Die Verbindung wird in der Regel prompt nach einem Passwort, wie eine SSH-Verbindung sollten nicht ungeschützt sein.

Öffentliche/Private Schlüssel

Fast jeder SSH-tutorial oder Installationsanleitung, wird es in der Regel Referenz-öffentliche/private Schlüssel an einem Punkt oder einem anderen. Diese sind der bevorzugte Weg, um das setup eine SSH-Verbindung. Statt ein Passwort, die gehackt werden können oder erraten, es ist notwendig, um wirklich erhalten Sie die key-Datei. Dieses tutorial ist nicht in, wie man diese, so lassen Sie uns davon ausgehen, dass ein Satz bereits vorhanden ist und ordnungsgemäß eingerichtet. Wie sagen wir unsere host-Konfiguration, um diese Datei zu verwenden?

Meine Host-ssh-host
HostName 10.0.0.5
Port 22
Benutzer myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja

Es gibt zwei neue Befehle, die wir eingeführt haben, hier. Die IdentityFile und die IdentitiesOnly Befehle. Zuerst müssen wir sagen, SSH, wo die key-Datei ist, in diesem Fall haben wir die Datei gespeichert in .ssh-Verzeichnis (vorsichtig sein, Berechtigungen). Zweitens, wir haben definiert, ein tag mit dem Namen ” IdentitiesOnly. Dies wird Ihnen sagen, SSH zu versuchen, nicht jede Identität-Datei in diesem Ordner, sondern nur den einen, definiert wird. Standardmäßig wird SSH durch gehen und versuchen, jede Identität-Datei, bis Sie den richtigen gefunden hat. Dies führt oft zu einem “Too many authentication failures for user myuser” auf dem Ziel-server, wenn es gibt eine Menge von Identitäten.

Komplexe Konfigurationen

Es gibt viele Szenarien, die wir abdecken könnten in diesem Artikel, aber gehen wir über einige gemeinsame und nützliche dazu.

ForwardAgent

Was ist, wenn Sie ein Szenario, wo Sie geöffnet haben, eine SSH-Verbindung zu einem target-server, der muss dann, um eine weitere SSH-Verbindung zu einem zweiten server aus, das ursprüngliche Ziel-server? Sie denken vielleicht, dass Sie benötigen, um zu speichern die gleichen SSH-Schlüssel auf, die Ziel-server, um diese im nächsten hop. Gibt es einen Befehl, mit dem treffenden Namen ForwardAgent, können Sie auf “vorwärts” Ihre lokale Tasten, um den nächsten server in der hop.

Meine Host-ssh-host
HostName 10.0.0.5
Port 22
Benutzer myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
ForwardAgent yes

ProxyJump

Ähnlich ForwardAgent, ist es oft nötig, zu öffnen, eine sekundäre SSH-Verbindung direkt durch ein einem ersten (oder zweiten) Ziel. Viele Male ist dies, weil eine Maschine kann abgeschirmt vom Allgemeinen internet, sondern über eine Verbindung zu einem “jump-box”, die dann ermöglicht das öffnen einer Verbindung auf dem Firewall-server. Ab dann wird SSH-version 7.3 und höher, die ProxyJump-Befehl ermöglicht es uns, leicht zu erreichen.

Meine Host-ssh-host
HostName 10.0.0.5
Port 22
Benutzer myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
ForwardAgent yes
ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Wie oben gesehen, es gibt zwei Server hier. Zunächst wird der SSH-Verbindung gehen Sie auf 10.0.0.5 aber dann sofort eine Verbindung zu 10.0.0.6, dann wird es schließlich öffnen Sie eine Verbindung mit einem anderen user und port 10.0.0.7.

SSH-Proxy-Tunnel

Was ist, wenn Sie haben die Notwendigkeit der Einrichtung einer SOCKSv5-tunnel? Dies ist ganz einfach über die config-Datei. Wir werden die Einführung von drei neuen Befehle hier, DynamicForward, ControlMaster und ControlPath.

Meine Host-ssh-host
HostName 10.0.0.5
Port 22
Benutzer myuser
IdentityFile ~/.ssh/id_ed25519_myuser
IdentitiesOnly ja
DynamicForward 8080
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

Die DynamicForward Befehl ist der port, wir sind eigentlich auf der Suche nach proxy über unsere SSH-Verbindung, z.B. port 8080. ControlMaster auf auto eingestellt ist, was bedeutet, dass, wenn eine Verbindung vorhanden ist, dann verwenden Sie diese, aber wenn nicht, erstellen Sie eine neue. Endlich, die ControlPath stellt den Ort der eigentlichen socket-Datei. In diesem Fall ist es mit dem naming format %r@%h:%p das entspricht myuser@10.0.0.5:22 in dieser Verbindung Fall.

Fazit

Es gibt eine Menge power in der SSH-Konfigurationsdatei. Weit komplexere Beispiele können definiert werden, die neben der einfachen Festlegung auf viele verschiedene Rechner innerhalb von einem einzigen Standort aus. Dadurch werden nicht nur die host-verbindungen gut dokumentiert, aber Sie ermöglichen einen schnellen und einfachen Zugriff auf die Befehlszeile. Wenn Sie diese Datei unter Versionskontrolle haben Sie die Möglichkeit, eine Geschichte von Ihren Gastgebern und möglicherweise sparen Sie sich eine große Kopfschmerzen in der Zukunft. Wie können Sie sagen, die SSH-config-Datei macht die Definition SSH-hosts einfach!