вы можете сделать обратный SSH с помощью -R arg (я написал статью на французском языке об этом здесь ) и cron или сделать сервис с.
здесь материал переведен
user@mynewRaspberry :~$ ssh -R 61337:localhost:22 z8po@z8po.dyndns.info
после того, как вы можете войти в нее из другого места, здесь, например, из z8po.dyndns.info
z8po@hive :~$ ssh z8po.dyndns.info -p 61337
Далее давайте используем цикл while в вашем скрипте, чтобы проверить, что ssh всегда перезапускается.
while true do ssh -R 61337:localhost:22 z8po@z8po.dyndns.info done
вы можете поддерживать ваше соединение с помощью keep live на ssh-клиенте или сервере, добавив в /etc /ssh /sshd_config или ~ /.ssh /config следующую строку
ClientAliveInterval 60
Не забудьте использовать ключ rsa, застрахованный от paswsrod, для автоматического входа в систему без приглашения, или, если вы действительно хотите использовать пароль, измените команду ssh на user:password @ ip, но она менее безопасна.
Первый метод Cron это
сделать проверку скрипта, если все уже запущено, в /home/USER/autolauncher.sh
#!/bin/sh
if ps -ef | grep -v grep | grep yourscript.sh ; then
exit 0
else
while true do ssh -R 61337:localhost:22 z8po@z8po.dyndns.info done
exit 0
fi
и редактировать свой crontab
crontab -e
добавить его после других заданий crons; каждые 5 минут запускайте предыдущий скрипт (который не будет работать, если он уже запущен)
*/5 * * * * /home/USER/autolauncher.sh
Второй способ: сервис при запуске
создайте или скопируйте скрипт в init.d и добавьте в него команды, используя vi:
sudo nano /etc/init.d/autolauncher.sh
сделать его исполняемым
sudo chmod +x /etc/init.d/autolauncher.sh
update-rc.d для создания и настройки запуска:
sudo update-rc.d autolauncher.sh defaults
теперь у вас есть два способа заставить ваш rasperry пытаться соединиться