SSH-Port weiterleiten

SSH-Port weiterleiten

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:

http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-stinking-vpn-software/

Antwort1

Wenn Sie Programme wie ncoder netcatoder socatauf Ihrem Tunnelserver ausführen können, können Sie ProxyCommandanstelle 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

verwandte Informationen