autossh нужно запускать вместе с системой, например,
затолкав его в systemd.
[Unit]
Description=AutoSSH service for port 2222
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -NL 2221:localhost:2222 -o TCPKeepAlive=yes foo@bar.com
[Install]
WantedBy=multi-user.target
Здесь
- 2221 - порт, который откроется на локальной машине,
- 2222 - порт на удаленной машине, куда он будет перенаправлен
- foo - логин на удаленной машине
- bar.com - адрес удаленной машины
Ну и чтобы это все работало, нужно создать пару криптоключей (без парольной фразы) и передать открытый ключ на удаленный сервер:
Создание и пересылка ключевой пары (
на скорую руку)
ssh-keygen -b4096
На все вопросы ответить утвердительно - Enter,
парольную фразу не задаватьssh-copy-id логин@хост
Ввести пароль от удаленного хоста.
После этого
ssh логин@хост
будет работать без пароля
Учтите, что делать это нужно под тем же пользователем, под которым работает скрипт, скорее всего - root