So deaktivieren Sie lokale Weiterleitungen vorübergehend

So deaktivieren Sie lokale Weiterleitungen vorübergehend

Ich habe in meiner ~/.ssh/configDatei Einträge mit lokalen Vorwärtsdefinitionen wie

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

Das funktioniert einwandfrei, 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 einsauberMöglichkeit zur Verwendung sshoder rsyncmit einer Option zum Deaktivieren aller lokalen Weiterleitungen für eine Sitzung?

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.

Antwort1

Es gibt ClearAllForwardingseine Option in ssh_config, die genau das tut, was Sie brauchen:

AlleWeiterleitungen löschen

Gibt an, dass alle lokalen, Remote- und dynamischen Portweiterleitungen, die in den Konfigurationsdateien oder auf der Befehlszeile angegeben sind, gelöscht werden. Diese Option ist vor allem dann nützlich, wenn sie von der ssh(1)-Befehlszeile aus verwendet wird, um in Konfigurationsdateien festgelegte Portweiterleitungen zu löschen. Sie wird von scp(1) und sftp(1) automatisch gesetzt. Das Argument muss yes oder no (die Vorgabe) sein.

Sie können es als Befehlszeilenoption verwenden:

ssh -o ClearAllForwardings=yes host

verwandte Informationen