У меня есть установка с 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, то есть при остановке (или перезапуске) туннеля.