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

One Solution collect form web for “Сделать неудачный SSH вперед фатальной ошибкой”

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

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

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

 ExitOnForwardFailure yes 

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

 $ ssh -o ExitOnForwardFailure=yes blah 
  • Как сделать sftp для сервера, если имя пользователя содержит символ @
  • Сетевое пространство имен, ssh, X11
  • ssh-add возвращает: «Ошибка подключения к агенту: нет такого файла или каталога»
  • Как запустить скрипт на удаленном хосте, когда я потеряю соединение с ним?
  • Для того, чтобы цикл не выполнялся корректно поверх ssh
  • Как использовать sed для замены строки, используя номер строки на удаленной машине, используя ssh?
  • Могу ли я перевести «назад» из ssh-соединения на мой локальный emacs-сервер?
  • Как правильно использовать ssh ControlMaster
  • Как проверить, когда в конце открытого ключа SSH требуется значение = или ==?
  • Как запустить команду на TTY из сеанса SSH?
  • Как автоматически изменить фон терминала на основе имени ssh?
  • Interesting Posts

    Почему переменная передается команде su, но не массив из той же области?

    Синтаксическая ошибка с переменной, содержащей кавычки

    Выполняется ли задание, запланированное в crontab, даже когда я выхожу из системы?

    Как я могу изменить логин при аутентификации на SSH?

    sed для поиска нескольких слов и удаления этих строк

    Как сделать sda1 больше / использовать файлы загрузки по умолчанию в sdb1

    Как сделать двойной backtrack 5 5 и Windows 8?

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

    Помощь в получении Wi-Fi и работе в Arch Linux на Mac Mini 3,1

    lxd с собственным br0 Сеть недоступна в centos conteiner

    Постоянная конфигурация гостевой виртуальной машины Virtualbox

    Как добавить приложения в панель запуска приложения lxpanel через cli?

    Не удалось обновить kali linux из обычных исходных репозиториев

    Автоматические обновления безопасности на сервере сжимания Debian

    Доккер прав для моего использования?

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