В чем проблема с работой службы для автоматического поднятия SSH туннеля?

Как настроить службу в Linux, чтобы автоматически запускать SSH туннель с использованием autossh при сбое или перезагрузке сервера?
  • 2 апреля 2024 г. 11:19
Ответы на вопрос 2
Проблема с работой службы для автоматического поднятия SSH туннеля может быть связана с неправильной конфигурацией службы или недостаточными правами доступа к файлам и ресурсам.

Чтобы настроить службу в Linux для автоматического запуска SSH туннеля с использованием autossh, следуйте следующим шагам:

1. Создайте конфигурационный файл для autossh, например /etc/ssh/autossh.conf. В этом файле укажите параметры для соединения (например, хост, порт, логин).

2. Создайте bash скрипт, который будет запускать autossh с указанием конфигурационного файла. Например, создайте файл /usr/local/bin/start_tunnel.sh с содержимым:
```
#!/bin/bash
/usr/bin/autossh -f -M 0 -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -i /path/to/private/key -R remote_port:localhost:local_port user@remote_host -p remote_ssh_port
```

3. Сделайте скрипт исполняемым:
```
chmod +x /usr/local/bin/start_tunnel.sh
```

4. Создайте systemd unit файл для службы, например /etc/systemd/system/autossh.service с содержимым:
```
[Unit]
Description=AutoSSH tunnel service
After=network.target

[Service]
ExecStart=/usr/local/bin/start_tunnel.sh

[Install]
WantedBy=multi-user.target
```

5. Запустите и активируйте службу:
```
systemctl start autossh
systemctl enable autossh
```

Теперь служба будет автоматически запускаться при загрузке сервера и в случае сбоев.
нужно как минимум выкинуть ключ f из команды запуска, который несовместим с systemd
Похожие вопросы