Добрый день, Уважаемые!Помогите пожалуйста, решить вопрос.
Мне надо чтобы на компе в фоновом режиме всегда был активен проброс порта через ssh. Т.е. чтобы я его не руками заупскал, а автоматом это делалось, а если связь порвалась - то чтобы восстанавливалось.
Примерно так:
/etc/rc.local#!/bin/sh/usr/bin/su - user -c /home/user/scripts/my.1080.sh &
/home/user/scripts/my.1080.sh
#!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbinwhile true
do
/usr/bin/netstat -an | /usr/bin/grep "127.0.0.1.1080"
if [ $? -ne 0 ] ; then
/usr/bin/ssh -D 1080 -p 12345 my@10.2.0.3
fi
sleep 1
doneВсё бы ничего, но если я скрипт этот руками запускаю, то всё ок, он вываливается в удалённую ssh консоль, порт проброшен, всё ок.
А вот если это происходит через /etc/rc.local или через cron, то видно что порт поднимается и убирается. Я так понимаю, что как таковой консоли нет, к которой он этот ssh сеанс успешно установленный привязать может и сразу поэтому завершается.Подскажите пожалуйста, как эту херомантию реализовать?
> Подскажите пожалуйста, как эту херомантию реализовать?А разьве autossh такого не умеет?
> А разьве autossh такого не умеет?Добрый вечер Уважаемый!
Спасибо огромное, теперь буду эту тулзу знать. Она решает, только не получается её автоматически сделать. Та же самая проблема, которую я описал в первом сообщении.
Если запускаю
autossh -M 20000:7 -p 20022 -D 1080 my@10.2.0.3
из консоли, то всё ок. А вот добавив в конец & или -f в опции autossh, вcё перестаёт работать. На удалённой машине в этот момент вижу успешная авторизация (по ключу она тут), и что потом клиент просто вышел.Я так понял, что типа не создаётся сеанс под работу этой команды, и в итоге пока писал это, почитал про сам ssh и в ключи добавил -fNT
итоговая команда которая решает весь вопрос:autossh -M 20000:7 -f -p 20022 -D 1080 -fNT my@10.2.0.3Спасибо за наводку Товарищ Аноним!
Запускать в screen / tmux не пробовали?
Как вариант? попробуйте запускать через screen.
> Как вариант? попробуйте запускать через screen.Да, но хочется "без рук". Сейчас autossh выше сообщением в /etc/rc.local добавил и всё. Автоматом всегда работает. При подвисании автопереключается тут же. В общем отличное решение.
>[оверквотинг удален]
> sleep 1
> done
>
echo "tmux new-session -d 'ssh -D 1080 -p 12345 my@10.2.0.3'" >> /etc/rc.local
/usr/bin/ssh -D 1080 -p 12345 my@10.2.0.3 < /dev/null