2

У меня есть ноутбук Mac и я хотел бы иметь постоянный туннель SSH, чтобы я всегда мог войти из локальной сети. Я ищу что-то, что будет работать, когда сервер не может быть достигнут изначально (например, если у меня нет подключения к Интернету, когда я загружаю его), и автоматически запускает туннель, когда это возможно.

Я попытался @reboot autossh в свой crontab, но обнаружил, что сеансы начинаются с отключения autossh очень часто, и autossh завершается, если первая попытка не удалась. Мой текущий обходной путь - небольшой скрипт и cronjob:

# crontab
/home/blackl/bin/script &!

# script
#!/bin/sh
while true; do ssh -Ngn -R $some_port:localhost:22 $server; sleep 30; done;

Есть ли лучший способ сделать это, или я просто должен быть счастлив этим сейчас?

1 ответ1

1

Извините, это очень поздний ответ, и вы, возможно, уже сталкивались с этим решением, но вот как это можно сделать с помощью механизма launchctl OS X.

Я не думаю , что у него есть это совершенно верно; вы бы использовали ключ KeepAlive (со значением true) вместо устаревшей пары ключ / значение OnDemand / false. Кроме того, я не знаю, почему он перенаправляет на тот же порт на удаленном хосте (1666), что и 22. Тем не менее - вы поняли идею. У меня есть и работает нормально на нашем веб-сервере. Гораздо элегантнее бесконечной петли.

О, и вместо того , чтобы LINGON , что он упоминает, вы можете использовать чудесную LaunchControl , чтобы установить его, изменять и контролировать его. Если вы не знакомы с launchctl, я настоятельно рекомендую прочитать учебник по программе или на сайте, чтобы понять, что происходит. Извините - я бы связался с учебником, но у меня недостаточно репутации:/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .