
Ich möchte mich mit einer Gruppe von Maschinen über eine bestimmte Maschine verbinden und dabei SSH-Tunneling nutzen. Aber bei allen gefundenen Lösungen muss ich in meiner SSH-Konfigurationsdatei einen Eintrag pro Maschine angeben. Ich möchte ein Platzhalterzeichen folgendermaßen verwenden:
Host *.mydomain.com
// some magic here
Die beste Lösung für den Moment war:
Antwort1
Wenn Sie Programme wie nc
oder netcat
oder socat
auf Ihrem Tunnelserver ausführen können, können Sie ProxyCommand
anstelle einer Portweiterleitung Folgendes verwenden:
# Only necessary if it matches the *.mydomain.com wildcard. Useless otherwise.
Host tunnelbox.mydomain.com
ProxyCommand none
Host *.mydomain.com
ProxyCommand ssh tunnelbox.mydomain.com nc %h %p
#ProxyCommand ssh tunnelbox.mydomain.com ncat %h %p
#ProxyCommand ssh tunnelbox.mydomain.com socat stdio tcp:%h:%p
#ProxyCommand ssh tunnelbox.mydomain.com netcat %h %p
Entfernen Sie die Kommentarzeichen aus dem entsprechenden ProxyCommand, je nachdem, welche Tools auf dem Tunnelserver installiert sind.
Beachten Sie, dass für jeden Tunnel eine separate SSH-Verbindung eingerichtet und wieder abgebaut wird, was bedeutet, dass die Verbindung langsamer ist als über SOCKS. (Die Leistung wird dadurch nicht beeinträchtigt.nachVerbindung jedoch.)
Wenn Ihre SSH-Version dies unterstützt, können Sie Verbindungsmultiplexing aktivieren:
Host tunnelbox.mydomain.com
ControlMaster no
ControlPath none
Host *.mydomain.com
ControlMaster auto
ControlPath ~/.ssh/S.%l.%r@%h:%p
ControlPersist 10m