Назад | Перейти на главную страницу

Правильные варианты сохранения открытого обратного SSH-туннеля с помощью autossh

У меня есть установка с LDAP-сервером (ldapserver) за строгим брандмауэром, а веб-приложение, работающее на сервере (appserver) за пределами этого брандмауэра, который должен аутентифицироваться с помощью этого LDAP-сервера.

Я успешно использовал третий сервер (tunnelserver) как в промежуточном, настройка SSH-туннеля между appserver и ldapserver выполнив следующую команду на tunnelserver:

ssh username@appserver -R 28420:ldapserver:389

Единственная проблема в том, что иногда у меня ломается труба и теряется SSH-туннель.

Решение кажется автосш, но мои ограниченные знания SSH едва смогли заставить работать туннель и кажутся недостаточными, чтобы правильно повторно указать параметры для autossh.

Какие-нибудь советы?

Параметры в основном одинаковые (autossh передает их прямо ssh). удалять -f если ты не хочешь autossh для фона самого себя. Вы, вероятно, хотите -N возможность не запускать оболочку на сервере. Выберите свободный порт для -M вариант (порт, указанный выше, также должен быть свободным). В Debian / Ubuntu вы можете опустить это, потому что пакет включает сценарий оболочки, который автоматически выбирает свободный порт.

autossh -M 20000 -f -N -R 28420:ldapserver:389 username@appserver

В 2013 году я заметил, что при использовании autossh для обратных туннелей удаленная сторона sshd не завершалась.

Я работал над этим с помощью скрипта для запуска / остановки / перезапуска моего туннеля (который я включил с помощью @reboot в crontab для запуска туннеля), при этом я бы убил удаленный конец с помощью команды ssh force, то есть при остановке (или перезапуске) туннеля.