Tunnel SSH-VNC con Android

  •  Tunnel SSH VNC per collegare un palmare Android, come ad esempio l'Htc Dream, ad una macchina remota con Linux Ubuntu e poterla controllare da remoto via Internet. del
  • , aggiornata al
  • , di
  • in

Per fare un collegamento remoto ad un PC server dal palmare Htc Dream con Android, io uso l'applicativo AndroidVNC, un client Vnc, in abbinamento con l'applicativo ConnectBot, un client Ssh per rendere più sicuro il collegamento stesso.

In questo modo posso collegarmi dal palmare con Android al mio server casalingo remoto dove ho installato Linux Ubuntu.

Qui ti spiego come ho fatto. Occorre avere sul proprio server Linux un server SSH configurato in ascolto su una certa porta (qui nell'esempio 7777). Occorre poi generare una chiave pubblica e una chiave privata da memorizzare sia sul server e sia su una chiavetta usb o su una sdcard per poi copiarsele sulla sdcard del palmare con collegamento Usb.

Come fare a generare le chiavi pubbliche e private per ssh è spiegato su tanti siti web, come anche qua: //help.ubuntu-it.org/9.10/ubuntu/serverguide/it/openssh-server.html. Per cui io non te le ripeto.

Occorre poi prelevare dal Market di Android le applicazioni gratuite ConnectBot e AndroidVNC. Io ho scelto quelle, ma ce ne possono essere anche altre.

Tunnel Ssh Vnc con Android


Icona dell'applicativo ConnectBot un client ssh per Android.


Tunnel Ssh Vnc con Android


Dopo aver installato il client ssh occorre configurarlo con le opzopni "Edit host" e "Edit port Forwards".


Tunnel Ssh Vnc con Android


Schermata di configurazione Port forwards di ConnectBot per il client vnc. Come Source Port si indica la porta ssh che si utilizza per collegarsi al server ssh remoto e come Destination si indica la porta sul quale il client vnc è in ascolto sul palmare che di solito è la 5900, insieme all'indirizzo in locale della macchina che ospita il client vnc, cioè il palmare che di solito è 127.0.0.1, l'indirizzo localhost, (il server vnc remoto si deve trovare in ascolto sulla stessa porta 5900)


Tunnel Ssh Vnc con Android


Così come sopra si dovrebbe presentare la schermata di Port forwards una volta configurata. Il server ssh remoto è stato configurato per essere in ascolto sulla porta 7777. il client ssh si collega al server ssh remoto tramite la porta 7777 e crea un tunnel reindirizzando i dati provenienti dalla porta 7777 sulla porta 5900 locale del client vnc.

Fatto questo occorre indicare al client ssh dove si trovano le chiavi pubbliche e private che hai copiato sul palmare. Nelle opzioni di "menu" di connectBot c'è la voce "Manage Pubkeys" dalla quale è possibile importare o generare delle chiavi. Sempre utilizzando il tasto "menu" del palmare, si importa il file id_rsa che contiene la chiave privata con la password di collegamento ssh, file precedentemente copiato nella sdcard del palmare.


Tunnel Ssh Vnc con Android

Sopra, la schermata con l'icona dell'applicativo androidVNC una volta installato sul palmare.


Tunnel Ssh Vnc con Android


Schermata di configurazione dell'applicativo androidVNC che gestisce il client locale Vnc. Come indirizzo a cui collegarsi inseriamo l'indirizzo del localhost del client ssh collegato tramite la porta 7777 al server ssh remoto.


Tunnel Ssh Vnc con Android


Concludendo, prima stabilisci una connessione ssh con il server remoto, possibilmente senza finestra di shell. Una volta collegato correttamente, apri la sessione VNC e ti colleghi al server vnc passando per la connessione ssh. Se tutto è stato configurato correttamente, qui sopra hai la schermata del desktop remoto di Linux Ubuntu come si presenta sul palmare Htc Dream. Puoi ora controllare il server Linux in modalità desktop come se fosse installato sul tuo palmare. Naturalmente do per scontato che il tuo modem router adsl sia configurato correttamente per reindirizzare il traffico dati sulla porta ssh alla macchina che ospita il server ssh, senza dover tenere aperta la porta 5900 sul modem router.

Puoi comunque sempre fare la stessa cosa anche passando per una connessione locale via wifi decisamente più veloce e stabile che non attraverso le rete Internet, soggetta ad alti e bassi e a costi di collegamento che, su rete 3G, sono decisamente più alti.