====== 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í.