Comment désactiver temporairement les renvois locaux

13

J'ai dans mes ~/.ssh/configentrées de fichier avec des définitions de transfert locales comme

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

Cela fonctionne comme un charme, mais j'ai également des scripts pour synchroniser certaines données.
Ces scripts affichent de nombreux avertissements lorsqu'ils tentent de se connecter au serveur alors qu'il existe déjà une connexion.

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
....

Y at - il un propre façon d'utiliser sshou rsyncavec une option pour désactiver tous les attaquants locaux pour une session?

Évidemment, je pourrais copier et coller chaque bloc de configuration et en construire un avec et un sans les redirections locales, mais j'espère qu'il y a une meilleure solution.

jeb
la source

Réponses:

14

Il y a une ClearAllForwardingsoption dans ssh_config, qui fait exactement ce dont vous avez besoin:

ClearAllForwardings

Spécifie que toutes les redirections de port locales, distantes et dynamiques spécifiées dans les fichiers de configuration ou sur la ligne de commande doivent être effacées. Cette option est principalement utile lorsqu'elle est utilisée à partir de la ligne de commande ssh (1) pour effacer les transferts de port définis dans les fichiers de configuration, et est automatiquement définie par scp (1) et sftp (1). L'argument doit être oui ou non (par défaut).

Vous pouvez l'utiliser comme option de ligne de commande:

ssh -o ClearAllForwardings=yes host
Jakuje
la source
Parfait - je pensais avoir lu la documentation assez attentivement
jeb
2
Juste au cas où quelqu'un en aurait besoin avec git:GIT_SSH_COMMAND="/usr/bin/ssh -o ClearAllForwardings=yes"
user1338062
Certainement pas RemoteForward=no- c'est le genre de chose que je cherchais en cherchant la même réponse.
DouglasDD
Cela supprime également le message Warning: remote port forwarding failed for listen port XYZlorsqu'il existe déjà une connexion.
Jan
1
@wbkang bien sûr. Fixé maintenant. Désolé, c'était probablement une faute de frappe.
Jakuje