Rozszerz lub odziedzicz istniejące wpisy w .ssh / config

0

Mam następujący wpis w moim pliku .ssh / config:

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

Bardzo proste, pozwala mi uzyskać dostęp myhostspoza sieci NATed, odbijając się external-relay.

Przez większość czasu chcę tylko SSH myhost, bez tworzenia tuneli SSH, ale czasami chcę tworzyć różne tunele do różnych celów.

W dzisiejszych czasach po prostu ręcznie dołączam -Lwpisy tunelu, gdy ssh, myhostale coraz trudniej jest zapamiętać, które zestawy portów potrzebuję do tego celu.

Mógłbym po prostu dodać te niestandardowe polecenia przekierowania portów jako aliasy, ale tak naprawdę chciałbym mieć osobne nazwane wpisy w moim .ssh/configpliku, które w zasadzie tworzą połączenie myhosti dodają wymagane tunele, ale nie chcę powielać całości myhostkonfiguruj za każdym razem, ponieważ jeśli / kiedy zmieniam external-relay, nie chcę pamiętać, aby zmieniać go w każdym wpisie, który go używał.

Czy istnieje sposób, aby utworzyć wpis, który dziedziczy FOM myhostwpis, a po prostu dołącza wymaganych LocalForwarddyrektyw w tym konkretnym przypadku tunelu?

ktorn
źródło

Odpowiedzi:

1

Powinieneś być w stanie zrobić:

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

śledzony przez:

Host myhost-1
    LocalForward ...

Host myhost-2
    RemoteForward ...
:

myhots-1i myhost-2wyprowadzi ustawienia myhost-*(ale NIE MOŻNA ich zastąpić).

Zdecydowanie powinieneś rzucić okiem na początek sekcji OPIS (aby zobaczyć, jak opcje są stosowane do połączenia) i sekcji WZORZY strony podręcznika ssh_config.

Tomek
źródło
To działa. Właściwie wiedziałem o wzorach i już użyłem symbolu wieloznacznego dla opcji globalnych, ale nie przyszło mi do głowy, aby ponownie użyć tego samego prefiksu hosta, aby osiągnąć to, czego chciałem tutaj. Dzięki!
ktorn