На машине которая будет инициировать соединение тунеля создал dddd.sh файлик где "dddd" это название
#!/bin/bash
sleep 5 -- установил задержку запуска в 5 секунд
ssh -N -R xxxx:localhost:yyyy [email protected] -p zzzz -- где:
___xxxx это порт на котором будет установлено обратное соединение, как следствие должен быть открыт на маршрутере
___yyyy это порт с которого будет проходить сединение у меня и по дефолту это 22 порт
___user это имя пользователя куда строить тунель
___n.n.n.n это IP адрес куда строить тунель (у меня это мой статический ИП)
___zzzz это порт на которое будет устанавливаться соединение SSH
Теперь создать .sh на ответном устройстве для подключения в тунель
#!/bin/bash
ssh user@localhost -p xxxx -- где:
___user это имя пользователя с которого инициируется тунель
___xxxx это порт на котором висит обратное соединение (то есть такой же как на предидущем устройстве)
Для автоматического запуска создал файлик nnnn.service по адресу ~/.config/systemd/user/ где nnnn это имя файла с таким содержимым
[Unit]
Description=nnnn
After=network
[Service]
ExecStart=/home/user/dddd.sh
Restart=oneshot
[Install]
WantedBy=default.target -- где:
nnnn это название сервиса у меня совпадает с название файла для удобства
/home/user/dddd.sh это путь к исполняемому скрипту
Дабы запустить сие безобразие потребовалось:
systemctl --user daemon-reload -- перезагрузить демон
systemctl --user enable nnnn.service -- включить автозапуск
systemctl --user start nnnn.service -- запустить сервис
systemctl --user status nnnn.service -- проверить или все нормально запустилось