1. Jsou volby Server vs Client - AliveInterval/Count rovnocenné? (až na to že se nastavují u klienta resp. u serveru a odhlédnu od toho, který konec čeká na expiraci timeru)
Tak ServerAliveInterval a ServerAliveCountMax se nastaví v klientovi. Po čase AliveInterval pošle klient prázdnou alive zprávu a tím se snaží udržet spojení aktivní. Když AliveCountMax krát nedostane na tuto zprávu odpověď, tak řekne, že nemá spojení a končí.
Pokud si teda myslím, že se mi spojení rozpadá třeba na 300 sekund, tak si nastavím ServerAliveInterval 30 a ServerAliveCountMax 200, takže to přežije výpadek kratší než 600 sekund a ještě se spojí. Nevýhoda je, že když se to opravdu rozpadne, nebo server spadne, tak to bude ještě 600 sekund trčet.
Výchozí je ServerAliveCountMax 3, ale lepší je dát víc a naopak menší ServerAliveInterval. Nejlíp je to dát do ~/.ssh/config
3: TCPKeepAlive jsem pochopil že není to co chci.
No taky pomáhá udržet spojení aktivní, ale není to šifrovaný, takže je to riziko. Lepší je nastavit na serveru ClientAliveInterval a ClientAliveCountMax. Což dělá to stejné, ale z pohledu serveru. Teda server pošle klientovi alive zprávu. Když jich nedostane CountMax zpět, tak řekne, že klient se odpojil a zruší spojení.