Обратное соединение SSH при запуске?

645
Alpha

У меня 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.

1
Это всего лишь предположение, но, возможно, ваш скрипт `connect` запущен до того, как сеть установлена, и из-за этого не работает. Попробуйте добавить `sleep` в скрипт. Scott 6 лет назад 0
@ Scott Weeeeell, я просто очень тупой xD. Я уже пытался добавить команду сна раньше, и она не работала, но я думаю, что я не заставлял ее спать достаточно, потому что с `sleep 60 'она работает. Спасибо! Как мне задать вопрос как «ответ», когда никто не отправил ответ? Alpha 6 лет назад 0
ОК, я разместил свое предложение в качестве официального ответа. Вы знаете, что делать сейчас, верно? Нажмите на галочку слева от ответа. (Поскольку вы новый пользователь, вам может потребоваться подождать несколько часов, прежде чем вы сможете «принять» ответ.) Scott 6 лет назад 0
@ Скотт Да, я знаю, как сделать это с официальными ответами, еще раз спасибо ^^ Alpha 6 лет назад 0

1 ответ на вопрос

0
Scott

Сценарии запуска иногда запускаются очень рано в процессе загрузки - иногда до установления сети. Если эти сценарии запуска пытаются получить доступ к сети слишком рано, они могут потерпеть неудачу. Добавление (достаточно длинного) sleepв начало вашего скрипта может решить проблему.