Сделать неудачный SSH вперед фатальной ошибкой

У меня есть сценарий, который подключается к удаленному хосту для репликации некоторых файлов через SSH. Я должен подключиться к демону rsync, прослушивая порт 873. Для этого у меня такая конфигурация ssh.

Host blah LocalForward 10873 127.0.0.1:873 Hostname 10.2.4.1 

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

Если я подключаюсь, когда открыт другой сеанс ssh, я получаю очевидное сообщение « Адрес уже используется» .

 me@local:~$ ssh blah bind: Address already in use channel_setup_fwd_listener: cannot listen to port: 10873 Could not request local forwarding. Linux remote 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64 motd... remote:~$ 

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

  • Ошибка sshfs: сброс соединения с помощью сверстника
  • Использование exec в поиске поверх ssh из сценария оболочки
  • переменное расширение в подстановке команд над SSH bash 4.X
  • Изменение порядка приватных ключей, передаваемых через SSH-вход
  • Скопируйте и получите файлы с одной машины, которая связана через ssh с другим
  • отслеживание прокси-соединения TCP
  • Почему я получаю «rsync: не удалось установить время на ...: операция не разрешена (1)» ошибка на Ubuntu 10.10 с SME Server 7.4?
  • Перенесите файл с Android на ПК (не в той же сети)
  • One Solution collect form web for “Сделать неудачный SSH вперед фатальной ошибкой”

    Для него есть опция конфигурации ssh (из ssh_config(5) ):

    ExitOnForwardFailure
    Указывает, должен ли ssh (1) прекратить соединение, если он не может настроить все запрошенные динамические, туннельные, локальные и удаленные пересылки портов. Аргумент должен быть «да» или «нет». По умолчанию используется “ no ''.

    Поэтому в вашей конфигурации ssh вы можете добавить:

     ExitOnForwardFailure yes 

    Или из командной строки:

     $ ssh -o ExitOnForwardFailure=yes blah 
    Interesting Posts

    Как долго поддерживаются стабильные версии Debian? как Debian Wheezy

    Рекомендуемое расположение приложений node.js в Linux-файловой системе?

    Arch: Является ли «SigLevel = Never» единственным удобным способом?

    Как получить текущее время соединения?

    Использование ядро ​​Linux для использования на встроенной системе

    Изменение сетевых настроек Redhat От DHCP до STATIC IP через конфигурационные файлы

    Как мне войти в Монетный двор, когда я забыл свой пароль?

    Отключить AC приводит к остановке anacron. Не было возобновлено, если cron.daily уже начался?

    Amazon EC2 micro instance большое количество запросов ввода-вывода

    Разделить аналогичные строки

    Как перенести файлы из одного каталога во вложенный каталог с помощью SSH?

    Подсчитайте строки, соответствующие шаблону и соответствующие предыдущей строке

    цикл xargs с переменной ввода для использования в команде с несколькими командами

    ping работает, но не ssh?

    Разрешить определенному пользователю или группе root доступ без пароля к / bin / date

    Linux и Unix - лучшая ОС в мире.