it:server:autossh

AutoSSH - správa SSH tunelů

V tomto článku se věnuji problému se správou SSH tunelů mezi zařízeními Solar Assistant a hlavní domácím serverem. Tunel potřebuji pro bezpečné přesměrování nezabezpečeného HTTP připojení ze Solar Assistant na portu 80 přes šifrované spojení.

Tunel mezi zařízeními se může přerušit:

  • Při pádu připojení.
  • Při restartu jednoho ze zařízení.

Je nutné mít mechanismus, který zajistí obnovu spojení bez nutnosti ručního zásahu.

autossh je nástroj, který automaticky spravuje a obnovuje SSH tunely.

Na hlavním serveru spusťte následující příkazy:

sudo apt update
sudo apt install autossh

Pro přesměrování portu 80 ze Solar Assistant na port 8080 na hlavní server použijte následující příkaz:

autossh -M 0 -f -N -g -L 8080:localhost:80 user@solar_assistant_device_ip
  • -M 0: Vypne vestavěné monitorovací porty (využívá SSH keepalive).
  • -f: Spustí autossh na pozadí.
  • -N: Nepoužívá žádné příkazy, pouze tuneluje.
  • -g: Povolení připojení na lokální port 8080 z jiných zařízení v síti.
  • -L 8080:localhost:80: Přesměruje port 8080 na zařízení OSMC na port 80 na Solar Assistant.

V souboru `~/.ssh/config` doporučuji přidat následující nastavení:

Host solar_assistant
    HostName solar_assistant_device_ip
    User user
    ServerAliveInterval 30
    ServerAliveCountMax 3

Toto nastavení zajistí pravidelné ověřování připojení a rychlou detekci přerušení.

Pro větší spolehlivost můžete vytvořit systemd službu, která bude tunel monitorovat.

Soubor `/etc/systemd/system/ssh-tunnel.service`:

[Unit]
Description=SSH Tunnel to Solar Assistant
After=network.target

[Service]
ExecStart=/usr/bin/autossh -M 0 -N -g -L 8080:localhost:80 user@solar_assistant_device_ip
Restart=always
RestartSec=10
User=osmc

[Install]
WantedBy=multi-user.target

1. Načtěte změny:

sudo systemctl daemon-reload

2. Povolení automatického startu:

sudo systemctl enable ssh-tunnel

3. Spuštění služby:

sudo systemctl start ssh-tunnel

Díky autossh a systemd je možné vytvořit spolehlivý mechanismus pro správu SSH tunelů mezi zařízeními. Toto řešení nejen zajišťuje bezpečný přístup k HTTP serveru na Solar Assistant, ale také eliminuje nutnost ručních zásahů při výpadcích spojení.

  • it/server/autossh.txt
  • Poslední úprava: 2025/01/14 22:48
  • autor: Petr Nosek