Сделать неудачный 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 немедленно вышел с кодом выхода, поэтому я могу поместить некоторую логику в свой сценарий, чтобы сообщить об ошибке, вместо того, чтобы пытаться запускать какие-либо команды против порта, перенаправленного на неправильный хост.

  • ssh passwordless не работает для вновь созданного пользователя с помощью команды «useradd»
  • Какова цель группы «ssh»?
  • Как выполнить удаленную команду для существующей сессии ssh
  • SSH - невозможно получить доступ к локальному переходу с другого хоста
  • Могу ли я подключать / dev / video поверх ssh
  • Можно ли имитировать щелчок мышью на удаленной машине через SSH?
  • Can 'ssh <host> <command>' настраивается всегда на загрузку файлов на стороне сервера?
  • Неисправна debian
  • 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

    Альтернатива команде сценария получения имен каталогов (с использованием ls & awk)

    Как убить команду, запущенную через SSH – потерянное соединение SSH

    Как найти длину строки с помощью команды echo и wc

    UNIX AWK: получить журналы с 24 часов

    Странные ошибки при использовании ffmpeg в цикле

    Как поймать сигнал в командной строке?

    Запуск fsck автоматически при вызове mount из командной строки

    Как я могу автоматически привязывать монтирование к загрузке в домашнем каталоге, не зашифрованном зашифрованным корнем?

    Запуск bash внутри cronjob

    Thinkpad T400: приостановка HD не возобновляется

    Проблемы с записью памяти

    Как проверить, определена ли переменная вообще в Bash до версии 4.2 с помощью опции оболочки nounset?

    Как найти количество байтов, переписанных в иерархию папок?

    Почему в руководстве по установке Debian предлагается выполнить «синхронизацию» после необработанной копии файла изображения на USB-ключ?

    файловые дескрипторы и / dev / fd

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