01 marzo 2009

VNC su tunnel SSH e accesso da MacOSX

Durante la mia febbricitanza, un mesetto fa, mi sono ridato all'informatica... Avevo un discreto numero di lavori in latex lasciati nella workstation linux dell'ufficio ed ero sinceramente stufo di andare avanti di ssh, scp ed sftp (per chi e lo sta chiedendo, si tratta di programmi che sfruttano un protocollo crittografato per accedere e controllare un computer remoto).

Non che fosse un grosso problema, qui sul mac la Secure Shell è installata di default, e il mio client ftp preferito, tale Cyberduck, supporta il protocollo sftp alla grande, inoltre con MacFUSE si può montare un disco remoto come se fosse un disco esterno, in pieno stile KDE. Quindi, se il problema fosse stato solamente evitare il terminale, non si sarebbe posto a priori. E' solo che mi sarebbe piaciuto accedere remotamente sul computer utilizzando l'interfaccia grafica... e mi è tornato in mente il caro vecchio VNC.

Chi è un po più pratico di Linux potrebbe tentare di accedere ed usare X localmente avviando i programmi da terminale, con l'accortezza di aver avviato ssh con le opzioni "-X -C", ma se non avete una connessione da almeno un gigabit sarebbe tutto inutile e molto molto lento!

Quindi mi sono armato di pazienza ed ho cercato un modo per avviare vnc sulla workstation Linux, collegarmi tramite ssh (il mio splendido firewall è configurato per permettere l'accesso solo alla porta 22 ed a ssh, e non ho intenzione di modificare questa impostazione) ed aprire sul mio portatile un client VNC per gestire remotamente ma graficamente il mio computer!

La ricetta è abbastanza semplice, mi preoccuperò poco di sicurezza supponendo che abbiate un firewall configurato come il mio, per cui potete solo accedere al vostro computer tramite ssh e la connessione VNC può essere attivata solo per localhost! Suppongo inoltre che sappiate almeno installare programmi sia nel vostro pc linux sia nel vostro mac.

Sulla workstation, oltre ad ssh, necessitate di un server VNC. In ufficio ho una Ubuntu 8.04 molto molto personalizzata, ma come vncserver ho optato, dopo numerose prove, per tightvncserver.

Sul vostro mac potreste installare Chicken of the VNC, che nonostante l'età funziona magnificamente!

Cosa resta da fare?

Aprite sul vostro mac un terminale e loggatevi remotamente con ssh con una riga di comando creata sulla falsa riga della seguente:
ssh -l USERNAME_REMOTO -C -L 59XX:127.0.0.1:59XX IP_WORKSTATION
dove al posto di "XX" dovete inserire il numero in due cifre che darete al vostro display X, per esempio mettiamo "10". Per pignoleria, questo vuol dire sostituire al poto di 59XX il valore 5910.

Soltanto la prima volta che vi loggate sulla vostra macchina Linux, ricordate di avviare "vncpasswd" e inserite una password che userete per accedere alla sessione VNC.

Una volta loggati nella vostra macchina Linux, avviate il server vnc con una riga del tipo
vncserver :XX -desktop Ufficio -geometry 800x600 -depth 16 -localhost
dove XX è lo stesso valore precedentemente inserito, in questo caso 10. Attenzione i duepunti prima di XX sono necessari e non sono un errore di battitura!

Ora che VNC è attivo, avviate "Chiken of the VNC" sul vostro mac e configuratelo come in figura, dove come al solito al posto di XX metterete il valore già messo sopra, nel nostro caso 10.



A questo punto cliccate su connetti e, magicamente, in una finestra apparirà il vostro desktop linux con un terminale aperto.

Quando chiuderete la sessione grafica, prima di sloggarvi dalla sessione ssh ricordate di chiudere il server vnc con il comando
vncserver -kill :XX
dove per XX valgono sempre le solite considerazioni...

Buon lavoro a tutti!

Nessun commento: