User Tools

Site Tools


Sidebar

Me
Здравствуйте!

Меня зовут Михаил Усик!
Я системный администратор
и наполняю эту wiki,
решая разнообразные IT-задачки.

Я всегда готов помочь Вам
наладить IT-инфраструктуру
за скромное вознаграждение!

mike@autosys.tk
+7 (977) 887-96-23

linux_faq:ssh_tunnel_as_systemd_service

Задача

Нужно сделать так, чтобы при старте ubuntu автоматически подимался ssh-туннель и поддерживался в рабочем состоянии.
Для этого создадим файлик сервиса, в него пропишем старт тоннеля.

Сервис systemd

Создаем файл /etc/systemd/system/secure-tunnel.service:

[Unit]
Description=Setup a secure tunnel to remote server
After=network.target

[Service]
ExecStart=/usr/bin/ssh -NT -i /home/user/.ssh/id_rsa -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 443 -R \*:2233:127.0.0.1:22 loginame@remote.server

# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=5
Restart=always

[Install]
WantedBy=multi-user.target

В результате, компьютер, на котором прописан этот сервис будет устанавливать ssh-соединение, в котором будет работать туннель. Локальный порт машины 22 будет доступен на удаленном сервере remote.server на порту 2233. Мне это нужно для доступа по ssh к машине, которая работает за NAT.
Включаем и стартуем сервис:

sudo systemctl enable secure-tunnel.service
sudo systemctl daemon-reload
sudo systemctl start secure-tunnel.service

Для того, чтобы подключаться к сервису не только с localhost машины remote.server, но и с других хостов, на сервере remote.server нужно в файлике /etc/ssh/sshd_config сделать так:

GatewayPorts yes

Discussion

Enter your comment. Wiki syntax is allowed:
X W᠎ T G J
 
linux_faq/ssh_tunnel_as_systemd_service.txt · Last modified: 2019/06/24 09:53 by admin