Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_faq:ssh_tunnel_as_systemd_service [2019/06/24 08:13] adminlinux_faq:ssh_tunnel_as_systemd_service [2019/11/27 08:37] (current) – [Сервис systemd] admin
Line 1: Line 1:
 +====== Задача ======
 +Нужно сделать так, чтобы при старте **ubuntu** автоматически подимался **ssh**-туннель и поддерживался в рабочем состоянии. \\
 +Для этого создадим файлик сервиса, в него пропишем старт тоннеля.
 + 
 +====== Сервис systemd ======
 +Создаем файл **/etc/systemd/system/secure-tunnel.service**:
 +<code>[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
 +</code>
 +В результате, компьютер, на котором прописан этот сервис будет устанавливать **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