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