![Как временно отключить локальные пересылки](https://rvso.com/image/697042/%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%20%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%8B%D0%BB%D0%BA%D0%B8.png)
У меня в ~/.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
с возможностью отключения всех локальных пересылок для сеанса?
Конечно, я мог бы скопировать и вставить каждый блок конфигурации и создать один с локальными переадресациями, а другой без них, но я надеюсь, что есть лучшее решение.
решение1
В , есть ClearAllForwardings
опция ssh_config
, которая делает именно то, что вам нужно:
ОчиститьВсеПересылки
Указывает, что все локальные, удаленные и динамические переадресации портов, указанные в файлах конфигурации или в командной строке, должны быть очищены. Этот параметр в первую очередь полезен при использовании из командной строки ssh(1) для очистки переадресаций портов, установленных в файлах конфигурации, и автоматически устанавливается scp(1) и sftp(1). Аргумент должен быть yes или no (по умолчанию).
Вы можете использовать его как параметр командной строки:
ssh -o ClearAllForwardings=yes host