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 host
ich 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 host
meldet mich als Benutzer beim Host an.
Antwort1
BindAddress
ist 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 -R
lautet 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/config
Syntax übersetzt:
Host host
HostName host
User user
RemoteForward 55555 localhost:22