У меня Raspberry Pi под управлением Kali Linux. Я хочу, чтобы, как только он загрузился, я подключился с помощью обратного соединения SSH к моей машине дома, чтобы я мог контролировать его, где бы он ни находился.
Я создал скрипт, который я назвал connect.sh, с этой строкой в нем:
sshpass -p '******' ssh -R 12345:localhost:***** user@**.***.**.** -p ***** -N &
И я добавил
@reboot /root/connect.sh
Для crontab (я редактировал его с помощью crontab -e). Проблема в том, что команда работает, когда я вручную запускаю скрипт, но когда я перезагружаю Raspberry Pi и пытаюсь подключиться к нему с моей другой машины, она не работает. И если я выполняю сценарий вручную, он делает.
Итак, я предполагаю, что есть проблема в запуске при запуске. И я знаю, что скрипт действительно выполняется, потому что я добавил echo test > test
в начале connect.sh, и когда я перезагружаю Pi, файл там. Так что есть проблема с командой SSH.
connect
скрипт работает до того, как будет установлена сеть, и из-за этого не работает. Попробуйте добавитьsleep
к сценарию.sleep 60
она работает. Спасибо! Как мне задать вопрос как «ответ», когда никто не опубликовал ответ?Ответы:
Сценарии запуска иногда запускаются очень рано в процессе загрузки - иногда до установления сети. Если эти сценарии запуска пытаются получить доступ к сети слишком рано, они могут потерпеть неудачу. Добавление (достаточно длинного)
sleep
в начало вашего скрипта может решить проблему.источник