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í.
Problém
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.
Řešení pomocí autossh
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
Nastavení tunelu
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.
Konfigurace SSH klienta
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í.
Použití systemd pro automatizaci
Pro větší spolehlivost můžete vytvořit systemd službu, která bude tunel monitorovat.
Vytvoření jednotky
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
Aktivace služby
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
Shrnutí
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í.