Action disabled: revisions

Задача

Нужно сделать так, чтобы при старте 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
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/ssh_tunnel_as_systemd_service.txt
  • Last modified: 2019/11/27 08:37
  • by admin