Come aprire una shell su un computer remoto ed (eventualmente) esecuzione di qualche applicazione grafica »


Lo scopo di questa serie di articoli è creare una guida rapida per l’accesso remoto al proprio computer. Lo scenario di riferimento è quello di una rete eterogenea, composta cioè da computer con diversi sistemi operativi (Linux, Windows e Mac OS X). Quello che vogliamo ottenere è l’accesso ad un computer (server) dagli altri. Verranno analizzate le varie possibilità (sistemi operativi Linux, Windows e Mac OS X sia per la parte server che per la parte client). Per quanto riguarda la tipologia di accesso remoto, esso può avvenire in modi diversi, in base alloscopo che si intende raggiungere, si va dalla condivisione di file all’apertura di una shell sul computer remoto, fino ad arrivare all’interazione con il desktop del computer remoto, che fornisce un accessoquasi completo ad esso. In questa prima parte verrà spiegato come Aprire una shell sul computer remoto ed (eventualmente) eseguire qualche applicazione grafica.

Condivisione dei File

Per accedere ai file condivisi dal server basta utilizzare i protocolli di esistenti, come NFS, SMB e AFP. Per informazioni dettagliate, vi rimando alla mia guida precedentemente pubblicata: Condividere file con PC Windows, Linux, MacOS X attraverso i protocolli SMB, NFS e AFP, consultabile a questo indirizzo.

Un’alternativa potrebbe essere l’uso del protocollo FTP, accessibile da qualsiasi macchina con qualunque sistema operativo, mediante appositi programmi come Filezilla o gFTP, da riga di comando, da browser o dal gestore delle finestre (es. Nautilus in Gnome), gli ultimi due inserendo l’indirizzo

ftp://username:password@151.97.9.181

Apertura di una shell sul computer remoto ed (eventualmente) esecuzione di qualche applicazione grafica

Se abbiamo bisogno della riga di comando possiamo utilizzare , che ci fornisce una shell remota
potente e sicura: i comandi forniti verranno quindi eseguiti sul computer remoto ma riceveremo l’output
sul client in uso. Più avanti vedremo come permetta di eseguire anche qualche applicazione
grafica.
La prima cosa da fare è installare un server sul server, in modo da consentire ad altre macchine di
connettersi alla propria.

Installazione Server

Per quanto riguarda Linux, molte distribuzioni contengono OpenSSH nei propri repositories, dunque è
possibile installarlo facilmente. Ad esempio, nelle distribuzioni Ubuntu e Debian (e probabilmente
anche molte altre distribuzioni Debian based) è sufficiente utilizzare i comandi:
sudo apt-get update
sudo apt-get install openssh-server openssh-client

In ogni caso è sempre possibile scaricare OpenSSH dal sito ufficiale e compilarlo manualmente. Per quanto riguarda Mac OS X Leopard, questo sistema operativo contiene di default OpenSSH, basta
solo attivarlo: andare in Apple → System Preferences e selezionare la voce . Da qui abilitare le due voci Remote Login e Remote Management, selezionando All users alla voce Allow access for, come mostrato dalla figura seguente:

A questo punto sarà possibile accedere al nostro Mac via . Diverso il caso di Windows, questo sistema operativo non possiede un server integrato, dunque bisogna usarne uno di terze parti: un esempio è FreeSSHd, gratuito e semplice da utilizzare; al momento dell’installazione rispondere affermativamente alla richiesta di creazione delle chiavi e alla richiesta di installazione come servizio (in questo modo sarà avviato automaticamente insieme a Windows), subito dopo aprire il programma attraverso l’icona nella tray e, dalla tab Users inserire l’utente da abilitare all’accesso remoto (nel nostro caso Administrator), così come mostrato in figura:

FreeSSHD Setting Windows

<blockquote> N.B. Qualunque sia il sistema operativo installato sul server, per ottenere l’accesso remoto è necessario che la porta utilizzata da (solitamente la porta 22) sia aperta, dunque verificare che lo sia dalle impostazioni del proprio firewall. </blockquote>

Se il client ha un sistema operativo Linux o Mac OS X, basta usare il seguente comando: -X username@indirizzo dove username e indirizzo vanno sostituiti con i giusti valori ed inserire la relativa password. L’opzione -x permette di eseguire qualche applicazione “grafica” sul computer remoto, redirezionando l’output in locale e può essere omessa se non si intende richiamare applicazioni grafiche. Se il client ha invece un sistema operativo Windows, è necessario utilizzare un client di terze parti, ad esempio l’ottimo Putty, scaricabile gratuitamente dal sito ufficiale. Il programma è semplicissimo da usare, basta inserire i parametri del server a cui connettersi, cioè indirizzo IP del server e porta da usare, come mostrato nella seguente figura:

Se si vuole usufruire della possibilità di eseguire applicazioni grafiche redirezionando l’output in locale, bisogna aprire dal menu di sinistra la voce Connection → → X11 e selezionare la checkbox Enable X11 forwarding, come mostrato nella figura seguente:

Tuttavia è necessario installare sul client un server X, ad esempio Xming, scaricabile a questo indirizzo. Dopo esserci connessi, vogliamo provare subito la funzionalità di X: se ad esempio ci siamo connessi ad un server Ubuntu e scriviamo il comando gedit, avremo l’output sulla nostra macchina Windows, come mostra la figura seguente.

N.B. Solo le applicazioni grafiche che utilizzano il server X funzioneranno, dunque se avvieremo notepad dopo esserci connessi ad un server Windows oppure TextEdit dopo esserci connessi ad un server Mac OS X, non riceveremo nessun output oppure esso sarà visualizzato sulla macchina remota.

Se si vuole un controllo maggiore sul server che include l’esecuzione di applicazioni grafiche e il controllo del desktop, bisogna ricorrere a soluzioni più sofisticate che saranno trattate nel prossimo articolo.

Autore : Giacomo Antonino Fazio aka l3golas


----> Leggi Anche :


3 commenti

  • At 2008.10.04 10:47, uk said:

    ehi ciao, una piccola nota sul redirect del server grafico X:
    il parametro da linea di comando è -X maiuscola, in quanto la minuscola dà l’effetto opposto: disabilita il forward di X11.

    ssh -X username@indirizzo

    saluti

    • At 2008.10.04 11:36, IntiLinux said:

      Corretto! Grazie!

      • At 2008.10.11 14:14, cirio said:

        ottimo;) io su win utilizzo openssh per windows; se può essere utile
        sshwindows.sourceforge.net/

        (Required)
        (Required, will not be published)
        Se sei alle prime armi con Linux fai la tua richiesta alla sezione Help per inesperti su InTiLinuX Forum.