Reverse-SSH-Tunnel in der Konfiguration

Reverse-SSH-Tunnel in der Konfiguration

Wie kann ich mit meiner ./ssh/config-Datei einen Reverse-SSH-Tunnel einrichten?

Ich versuche diesen Befehl zu reproduzieren

ssh -R 55555:localhost:22 user@host

in meiner .ssh/config-Datei, sodass ssh hostich beim Eintippen als Benutzer und mit einem Reverse-Tunnel eine SSH-Verbindung zum Host herstelle. Die von der Konfigurationsdatei akzeptierten Befehle sind ausführlichere Gegenstücke zu den Befehlszeilenflags. Basierend auf der SSH-Manpage und der Manpage für ssh_config scheint die entsprechende Einstellung BindAddress zu sein.

In meiner .ssh/config-Datei habe ich:

Host host
     Hostname host
     User user
     BindAddress 55555:localhost:22

Dies und geringfügige Abweichungen davon führen dazu, dass die Verbindung abgelehnt wird, wenn ich versuche

ssh localhost -p 55555

sobald ich mich beim Host angemeldet habe. Dasselbe funktioniert einwandfrei, wenn ich den Befehl oben explizit eingebe, wenn ich zum ersten Mal per SSH auf den Host zugreife. Meine Konfigurationsdatei funktioniert auch ohne den Reverse-Tunnel-Befehl; ssh hostmeldet mich als Benutzer beim Host an.

Antwort1

BindAddressist nicht die Option, nach der Sie suchen. Vonman ssh_config:

BindAddress
         Use the specified address on the local machine as the source
         address of the connection.  Only useful on systems with more than
         one address.

Das Äquivalent in der Konfigurationsdatei -Rlautet RemoteForward:

RemoteForward
         Specifies that a TCP port on the remote machine be forwarded over
         the secure channel to the specified host and port from the local
         machine.  The first argument must be [bind_address:]port and the
         second argument must be host:hostport. [...]

Mit diesen Informationen die Kommandozeile

ssh -R 55555:localhost:22 user@host

wird in die folgende .ssh/configSyntax übersetzt:

Host host
HostName host
User user
RemoteForward 55555 localhost:22

verwandte Informationen