Come collegarsi via Mosh da iPad al Mac con Blink Shell
Oggi, dopo un po' di tempo sono, finalmente riuscito a far funzionare il collegamento da iPad a Mac via Mosh utilizzando Blink Shell.
Mosh? Blink Shell? che parole stai usando Filippo?
L’articolo di oggi copre sicuramente un caso abbastanza di nicchia, me ne rendo conto, ma credo potrà tornare utile a tutti quelli che voglio lavorare in mobilità con un iPad su di un server remoto.
Ma vediamo con un po' di calma di cosa si tratta …
1. Che cos'è Mosh e perché è utile?
Mosh sta per Mobile Shell ed è uno programma che permette di collegare un computer client (nel mio caso l'iPad Pro) con un server remoto (nel mio caso un Mac) utilizzando internet.
I più esperti di voi diranno: e vabbè qual'è la novità? Non è già possibile farlo via SSH?
La risposta è sì, ma ci sono delle limitazioni (per cui poi è nato Mosh). In particolare il collegamento SSH, pur essendo molto leggero, visto che si trasmette solo del testo, quando la connessione ad internet non è perfetta o ci si sta spostando (casomai in un viaggio in treno) può avere dei problemi e l’esperienza di utilizzo può essere frustrante.
Mosh riesce invece a mantenere questa connessione ad esempio anche se il client cambia indirizzo IP, passando casomai da un collegamento cellulare ad uno Wi-Fi, inoltre Mosh mantiere la sessione di terminale aperta anche quando l’utente collegato perde la connessione internet e mette in modalità “sleep” il client stesso. Infine, se già tutto questo non vi bastasse, Mosh cerca di rendere il più immediato possibile la digitazione di testo in console anche se c'è un ritardo nella connessione.
Insomma se volete lavorare da remoto e in mobilità su di un server, Mosh è sicuramente la scelta necessitata e giusta.
1.1 Blink Shell
Come avrete capito da quanto detto sopra, lavorare in mobilità con Mosh diventa particolarmente interessanto se si utilizza un dispositivo ultra portatile come l’iPad.
E qui entra in gioco l’app open-source Blink Shell. Blink è un applicazione che emula una finestra di terminale e, tra le altre cose, implemente su iOS / iPadOS un client Mosh per collegarsi ad un server remoto.
L’app è open-source (perché la licenza di Mosh permette di utilizzarlo solo su applicazioni open) ma ha un costo di circa € 20 sull’AppStore. Questo perché il codice sorgente di Blink Shell è reperibile su GitHub (qui) ma poi l’utente finale deve compilarsi l’app per il proprio dispositivo Apple.
Personalmente l’ho comprata tempo addietro e, usandola molto, ritengo che la spesa, che aiuta peraltro lo sviluppo dell’app, ne valga la pena.
2. Qual’è il problema ?
Fin qui tutto bene teoricamente … il problema che fino ad ora non ero riucito a risolvere era tuttavia il seguente: se tutto funzionava perfettamente collegandomi dall’iPad al mio Raspberry Pi, ogni volta che provavo a far la stessa cosa tra iPad e Mac non riuscivo a stabilire il collegamento.
Questo, come potrete immaginare, per me era un grosso problema perché di fatto il mio iMac che ho in ufficio è i server a cui mi connetto per lavorare da remoto con l’iPad.
Mentre archiviavo ed organizzavo il materiale di riferimento che salvo in DEVONthink, tuttavia, sono incappato in un articolo che ho riletto e mi ha permesso di risolvere il problema … e così è nato questo articolo.
3. Installare Mosh su macOS via Homebrew
La prima cosa fare, ovviamente, è installare Mosh su macOS. L'operazione è piuttosto banale se si utilizza Homebrew. Vi ho parlato qui di Homebrew e vi ho fatto vedere in questo video come installarlo su macOS.
Aprite quindi una finestra di Terminale (digitate ⌘+Spazio e poi le prime lettere della parola “Terminale”) e digitare:
brew install mosh
Mosh verrà installato sul vostro Mac.
4. Configurare Blink Shell per accedere via Mosh al Mac
Ora siamo pronti per configurare Blink Shell per utilizzare Mosh su Mac.
Andiamo nelle preferenze di Mosh digitando ⌘+,.
Facciamo quindi tap su Host (ovvero sull’elenco dei server conosciuti a cui possiamo collegarci).
Fate tap sul tasto più “+”, se avete già degli Host configurati fate tap sul nome dell’host che volete modificare.
A questo punto si aprirà una nuova finestra.
- Alla voce “Host" inserite il nome del server remoto a cui vi volete collegare
- Alla voce “HostName” inserite l’indirizzo IP del server, può essere sia l’ip della intranet, come nel mio caso, che l’ip pubblico, così come il nome di dominio locale del vostro Mac (nel mio caso sarebbe stato MBP-16.local)
- Alla voce “Port” il numero della porta del vostro collegamento SSH (Mosh comunque utilizza il protocollo SSH per stabilire il primo collegamento), abitualmente è la porta 22 ma è possibile modificarla sul server remoto a piacimento
- Alla voce “User” inserite il vostro user name sulla macchina remota; piccola precisazione per macOS: quello da inserire non è il “Nome Completo“ ma il “Nome account”, nel mio caso il Nome Completo è Filippo Strozzi mentre il mio nome account e filippostrozzi (come si vede nell’immagine sottostante)
Potrete poi inserire, se volete, la vostra password per accedere al Mac (ma se non la inserite vi verrà chiesta ogni volta quando stabilite il collgamento con il vostro server remoto), oppure se utilizzare una chiave SSH. L'argomento chiavi SSH è complesso e quindi non lo approfondisco qui, segnalo solo che Blink Shell permette tutti e due i modi di login e, se potete è più sicuro usare la chiave SSH.
4.1 Abilitare il protocollo Mosh in Blink Shell
Veniamo infine all’ultima parte di configurazione.
Nella parte dedicata a Mosh occorre inserire una riga specifica ovvero la voce “Command“.
Di fatto bisogna inserire il percorso dove si trova il server Mosh a cui ci vogliamo collegare.
A Terminale digitate il seguente comando:
which mosh-server
Il comando which server per stabilire dove risiede uno specifico altro programma (nel nostro caso il Server Mosh) e dovrebbe comparirvi come risultato a schermo la seguente riga:
/usr/local/bin/mosh-server
Questa è la cartella dove Homebrew ha installato il server Mosh. Copiate questa riga all’interno del campo “Command”.
Ora siamo pronti a collegarci al server remoto da Blink Shell.
4.2 Aprire un collegamento Mosh con il nostro Mac
Ora siamo finalmente pronti a collegaci via Blink Shell al nostro server remoto.
Usciamo dai Settings di Blink ed a terminale digitiamo mosh
seguito dal nome dell’host a cui vogliamo collegarci. Come si vede dall’immagine sottostante Blink Shell suggerisce ed autocompleta il testo che digitiamo.
5. Materiale di riferimento
In conclusione
Chi legge con abitudine questo sito sa che sto deviando sempre più verso strumenti a riga di comando per la gestione di molti aspetti della mia attività professionale, poter lavorare da remoto su di un iPad sfruttando le capacità del Mac è una carta in più. Causa pandemia non ho potuto testare a fondo il protocollo Mosh ma dalla mia esperienza con i Raspberry devo dire che questo tipo di collegamento in mobilità rende decisamente più semplice lavorare su server remoti.
Come sempre se avete domande o richieste di chiarimenti potete lasciarli nei commenti qui sotto.