Obsah

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:

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

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