So deaktivieren Sie lokale Weiterleitungen vorübergehend

12

Ich habe in meiner ~/.ssh/configDatei Einträge mit lokalen Forward-Definitionen wie

HOST myServer
   hostname 10.10.0.1
   user xyz
   LocalForward 8080 localhost:80
   LocalForward 4000 127.0.0.1:4000
   ...

Das funktioniert wie ein Zauber, aber ich habe auch Skripte, um einige Daten zu synchronisieren.
Diese Skripte zeigen viele Warnungen an, wenn sie versuchen, eine Verbindung zum Server herzustellen, während bereits eine Verbindung besteht.

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 8080
bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 4000
....

Gibt es eine gute Möglichkeit sshoder die rsyncOption, alle lokalen Weiterleitungen für eine Sitzung zu deaktivieren?

Natürlich könnte ich jeden Konfigurationsblock kopieren und einfügen und einen mit und einen ohne lokale Weiterleitungen erstellen, aber ich hoffe, es gibt eine bessere Lösung.

jeb
quelle

Antworten:

13

Es gibt eine ClearAllForwardingsOption in ssh_config, die genau das tut, was Sie brauchen:

ClearAllForwardings

Gibt an, dass alle lokalen, Remote- und dynamischen Portweiterleitungen gelöscht werden sollen, die in den Konfigurationsdateien oder in der Befehlszeile angegeben sind. Diese Option ist in erster Linie nützlich, wenn sie über die Befehlszeile ssh (1) zum Löschen der in Konfigurationsdateien festgelegten Portweiterleitungen verwendet wird. Sie wird automatisch von scp (1) und sftp (1) festgelegt. Das Argument muss Ja oder Nein sein (Standardeinstellung).

Sie können es als Befehlszeilenoption verwenden:

ssh -o ClearAllForwardings=yes host
Jakuje
quelle
Perfekt - ich dachte, dass ich die Dokumentation sorgfältig genug gelesen habe
jeb
2
Nur für den Fall, dass jemand dies benötigt mit git:GIT_SSH_COMMAND="/usr/bin/ssh -o ClearAllForwardings=yes"
user1338062
Auf keinen Fall RemoteForward=no- das ist die Art von Sache, nach der ich gesucht habe, als ich nach der gleichen Antwort gesucht habe.
DouglasDD
Dies unterdrückt auch die Nachricht, Warning: remote port forwarding failed for listen port XYZwenn bereits eine Verbindung besteht.
Jan
1
@wbkang sicher. Jetzt behoben. Entschuldigung, es war wahrscheinlich ein Tippfehler.
Jakuje