Как временно отключить локальные форварды

12

У меня есть в моем ~/.ssh/configфайле записи с локальными определениями вперед, как

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

Это работает как шарм, но у меня также есть скрипты для синхронизации некоторых данных.
Эти сценарии показывают много предупреждений, когда они пытаются подключиться к серверу, когда соединение уже установлено.

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

Есть ли аккуратный способ использования sshили rsyncвозможность отключить все локальные переадресации для сеанса?

Очевидно, что я мог бы копировать и вставлять каждый блок конфигурации и создавать один с и без локальных пересылок, но я надеюсь, что есть лучшее решение.

Джеб
источник

Ответы:

13

Есть ClearAllForwardingsопция ssh_config, которая делает именно то, что вам нужно:

ClearAllForwardings

Указывает, что все локальные, удаленные и динамические перенаправления портов, указанные в файлах конфигурации или в командной строке, должны быть очищены. Этот параметр в первую очередь полезен, когда используется из командной строки ssh (1) для очистки переадресации портов, заданной в файлах конфигурации, и автоматически устанавливается scp (1) и sftp (1). Аргумент должен быть да или нет (по умолчанию).

Вы можете использовать его как параметр командной строки:

ssh -o ClearAllForwardings=yes host
Jakuje
источник
Perfect - я думал , что я читал документацию достаточно тщательно
Джеб
2
На всякий случай, если кому-то это нужно git:GIT_SSH_COMMAND="/usr/bin/ssh -o ClearAllForwardings=yes"
user1338062
Определенно нет RemoteForward=no- это то, что я искал, когда искал тот же ответ.
DouglasDD
Это также подавляет сообщение, Warning: remote port forwarding failed for listen port XYZкогда соединение уже установлено.
января
1
@wbkang конечно. Исправлено сейчас. Извините, возможно, это была опечатка.
Jakuje