Erweitern oder vererben Sie vorhandene Einträge in .ssh / config

528
ktorn

Ich habe den folgenden Eintrag in meiner .ssh / config-Datei:

Host myhost Hostname localhost User me ServerAliveInterval 30 ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889 

Sehr einfach, ermöglicht es mir, myhostvon außerhalb seines NAT-Netzwerks zuzugreifen, indem ich abspringe external-relay.

Meistens möchte ich nur SSH myhost, ohne SSH-Tunnel zu erstellen, aber manchmal möchte ich verschiedene Tunnel für unterschiedliche Zwecke erstellen.

Heutzutage füge ich die -LTunneleinträge einfach manuell an, wenn ich ssh an, myhostaber es wird immer schwieriger, mich zu merken, welche Ports ich für welchen Zweck benötige.

Ich könnte diese benutzerdefinierten Portweiterleitungsbefehle einfach als Aliasnamen hinzufügen, aber ich hätte wirklich gerne separate benannte Einträge in meiner .ssh/configDatei, die im Grunde die Verbindung herstellen myhostund die erforderlichen Tunnel hinzufügen, aber ich möchte das Ganze nicht duplizieren myhostconfig jedes Mal, denn wenn / wenn ich das ändere external-relay, möchte ich nicht daran denken, es in jedem Eintrag zu ändern, der es verwendet hat.

Gibt es eine Möglichkeit, einen Eintrag zu erstellen, der den myhostEintrag erbt und einfach die erforderlichen LocalForwardAnweisungen für diesen speziellen Tunnelfall anfügt ?

0

1 Antwort auf die Frage

1
Tomek

Sie sollten in der Lage sein:

Host myhost-* Hostname localhost User me ServerAliveInterval 30 ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889 

gefolgt von:

Host myhost-1 LocalForward ...  Host myhost-2 RemoteForward ... : 

myhots-1und myhost-2leitet Einstellungen von ab myhost-*(kann diese jedoch NICHT überschreiben).

Sie sollten sich auf jeden Fall einen Blick auf den Anfang von DESCRIPTION (um zu sehen, wie Optionen auf die Verbindung angewendet werden) und den Abschnitt PATTERNS der Manpage ssh_config anschauen.

Das funktioniert. Ich wusste wirklich über die Muster Bescheid und verwendete bereits einen Platzhalter für globale Optionen, aber ich hatte nicht gedacht, dass ich das gleiche Hostpräfix erneut verwenden sollte, um das zu erreichen, was ich hier wollte. Vielen Dank! ktorn vor 5 Jahren 0