Mosh o SSH sul telefono: quale usare per seguire il tuo agente
Avvii Claude Code su un compito lungo, chiudi il portatile ed esci. Il treno entra in una galleria, il telefono passa dal Wi-Fi ai dati mobili e perde il segnale per un minuto, e quando guardi di nuovo la sessione SSH è morta. È normale: SSH non è mai stato progettato per un client che cambia rete ogni pochi minuti, e Mosh ed Eternal Terminal esistono proprio per questo.
Ecco cosa fa ciascuno, cosa succede su un telefono e come scegliere. Se vuoi il quadro completo per far girare un agente dalla tasca, parti da Come usare Claude Code dal telefono.
Cosa succede a SSH su un telefono
SSH gira su una connessione TCP, e quella connessione è legata a un indirizzo IP e a una coppia di socket. Quando il telefono passa dal Wi-Fi ai dati mobili, il suo IP cambia e il server non lo viene mai a sapere. La connessione si blocca finché un timeout non la uccide. Lo stesso succede quando iOS o Android mette a dormire la rete dell’app per risparmiare batteria, o uccide l’app perché gli serve memoria.
Perdi più dello schermo. Un processo agganciato a quella sessione SSH può ricevere un SIGHUP e morire con lei. Per questo un agente avviato direttamente da una shell SSH è fragile, e per questo il compagno di questo articolo, tmux per agenti di codice, è quasi obbligatorio.
Mosh: UDP e riconnessione silenziosa
Mosh (mobile shell) usa SSH solo per partire. Si autentica via SSH, avvia mosh-server sul tuo computer e da lì in poi parla via UDP. Senza una connessione TCP da rompere, il client può cambiare IP, perdere segnale o andare in standby, e quando la rete torna la sessione è ancora lì.
In pratica:
- Passi dal Wi-Fi ai dati mobili e la sessione non se ne accorge.
- Se il server smette di rispondere, l’app te lo dice invece di chiudere la sessione.
- Echo locale con predizione: ciò che digiti viene disegnato subito, sottolineato, e confermato quando il server risponde. Su un collegamento mobile con molta latenza si sente la differenza.
Quanto costa:
- Le porte UDP 60000–61000 devono essere aperte sul tuo computer (ogni sessione occupa una porta di quell’intervallo).
- Niente cronologia di scorrimento. Mosh sincronizza solo ciò che è sullo schermo. Se vuoi risalire a leggere cosa ha stampato l’agente, lavora dentro tmux.
- Se il sistema operativo uccide l’app, la sessione Mosh termina e non si può riprendere.
Eternal Terminal: TCP, ma riprende
Eternal Terminal (ET) fa l’opposto. Gira su TCP, di default sulla porta 2022, ma mantiene un proprio stato di sessione, quindi quando la connessione cade la ricostruisce e rinvia ciò che si è perso. Richiede etserver in esecuzione sul tuo computer ed etterminal nel PATH della sessione SSH.
Su un telefono, il suo vantaggio è essere l’unico trasporto di Wendo che sopravvive alla chiusura dell’app. La sessione compare in Home e, quando la apri, riprende da dove era. Wendo indica ET come sperimentale, tienilo a mente prima di farci affidamento.
Confronto rapido
| | SSH | Mosh | ET |
|---|---|---|---|
| Trasporto | TCP | UDP | TCP (2022) |
| Wi-Fi ↔ dati mobili | Cade | Sopravvive | Sopravvive |
| Telefono in standby | Cade | Sopravvive | Sopravvive |
| App uccisa dal sistema | Cade | Persa | Riprende |
| Cronologia di scorrimento | Sì | No | Sì |
| Con un Jump Host in Wendo | Sì | No | No |
Installare mosh-server
Sul computer dove gira l’agente:
# macOS
brew install mosh
# Debian / Ubuntu
sudo apt install mosh
# Fedora
sudo dnf install mosh
Controlla che sia nel PATH di una normale connessione SSH, non solo del tuo terminale interattivo:
ssh my-server 'which mosh-server'
Su un Mac Apple Silicon, Homebrew lo mette in /opt/homebrew/bin/mosh-server, che non è sempre nel PATH di una sessione non interattiva. In quel caso, Wendo ti permette di impostare il percorso di mosh-server nella connessione.
Note sul firewall
Mosh richiede UDP in entrata 60000–61000. Su Linux con ufw:
sudo ufw allow 60000:61000/udp
Con firewalld:
sudo firewall-cmd --permanent --add-port=60000-61000/udp
sudo firewall-cmd --reload
Se il tuo computer è dietro un router, inoltra quell’intervallo UDP come faresti con la porta 22. Per ET, apri allo stesso modo la porta TCP 2022 (sudo ufw allow 2022/tcp).
Se il tuo SSH passa da un proxy o da un load balancer, l’UDP di Mosh potrebbe essere inviato all’IP sbagliato. Wendo ha l’opzione «Usa IP del server per UDP» per questo caso.
Scegliere in Wendo
Quando modifichi una connessione, il campo Trasporto offre Auto, SSH, MOSH ed ET. Con Auto, Wendo prova prima Mosh, poi ET, e ripiega su SSH se nessuno dei due è disponibile. Parti da Auto.
Una regola pratica:
- Camminerai con il telefono in mano e le sessioni durano pochi minuti: Mosh.
- Vuoi chiudere l’app, tornare un’ora dopo e trovare la sessione in Home: ET.
- Ti connetti tramite un Jump Host: SSH. Né Mosh né ET funzionano con un Jump Host in Wendo.
- Il tuo computer non può aprire porte UDP: ET o SSH.
Mosh ed Eternal Terminal fanno parte di Wendo Pro; senza Pro la connessione passa da SSH. I campi sono descritti nella documentazione delle sessioni.
Qualunque trasporto scelga, avvia l’agente dentro tmux. Il trasporto tiene in vita lo schermo; tmux tiene in vita il processo e ti dà la cronologia di scorrimento che manca a Mosh. La combinazione abituale è Mosh o ET per il collegamento e tmux per il lavoro, e ecco il minimo di tmux che ti serve. Per ricevere avvisi quando l’agente chiede un permesso, vedi gli hook.