3 581
contributi
(aggiunta configurazione lato server e requisiti) |
(aggiunto Xephyr) |
||
Riga 12: | Riga 12: | ||
== Lato server == | == Lato server == | ||
Requisiti: | Requisiti: | ||
* installare e in esecuzione il server [[SSH]] | * installare e in esecuzione il server [[SSH]]; | ||
* autorizzare gli accessi (con chiave per utente/host o password) come per la connessione normale (senza ''X11 forwarding''); | * autorizzare gli accessi (con chiave per utente/host o password) come per la connessione normale (senza ''X11 forwarding''); | ||
* abilitare <code>X11Forwarding</code> (vedere la sezione successiva), di default | * abilitare <code>X11Forwarding</code> (vedere la sezione successiva), di default disabilitato. | ||
Si ricorda che non è necessario che sia in esecuzione o anche solo installato un server grafico X sul server. | |||
=== Abilitare X11Forwarding === | === Abilitare X11Forwarding === | ||
Riga 63: | Riga 63: | ||
Dalla macchina client, è sufficiente lanciare <code>ssh</code> con l'opzione <code>-X</code>: | Dalla macchina client, è sufficiente lanciare <code>ssh</code> con l'opzione <code>-X</code>: | ||
<pre> | <pre> | ||
$ ssh -X | $ ssh -X utente_remoto@host_remoto | ||
utente_remoto@host_remoto:~$ (<-- sessione SSH) | |||
</pre> | </pre> | ||
per avviare una nuova sessione della [[shell]] testuale predefinita. | per avviare una nuova sessione della [[shell]] testuale predefinita. | ||
Riga 72: | Riga 72: | ||
Per esempio: | Per esempio: | ||
<pre> | <pre> | ||
utente_remoto@host_remoto:~$ evince | |||
</pre> | </pre> | ||
lancia il programma <code>evince</code> sulla macchina remota, visualizzandolo sul server X locale in esecuzione. Se si apre un documento, si noterà | lancia il programma <code>evince</code> sulla macchina remota (dove deve essere installato), visualizzandolo sul server X locale in esecuzione (dove può anche non essere installato). Se si apre un documento, si noterà che si sta esplorando il [[File System|file system]] dell'utente remoto sulla macchina remota. | ||
Quando si ha terminato | Quando si ha terminato è sufficiente chiudere la sessione, scrivendo il comando <code>exit</code> oppure premendo <code>Ctrl-d</code>: | ||
<pre> | <pre> | ||
utente_remoto@host_remoto:~$ exit (<-- sessione SSH) | |||
$ | $ (<-- shell locale) | ||
</pre> | </pre> | ||
In alternativa è possibile specificare direttamente il comando da eseguire. Per esempio per <code>evince</code>: | |||
<pre> | <pre> | ||
$ ssh -X | $ ssh -X utente_remoto@host_remoto -- evince | ||
</pre> | </pre> | ||
In tal caso la sessione SSH sarà terminata quando si chiuderà l'applicazione. | |||
==== Compressione ==== | |||
Un'opzione utile è <code>-C</code>, che permette la compressione del traffico di rete, in particolare quello reindirizzato al server X locale, il che può velocizzare i tempi di risposta delle applicazioni remote: | |||
<pre> | |||
$ ssh -X -C utente_remoto@host_remoto | |||
</pre> | |||
==== Avvio di un'intera sessione grafica ==== | |||
In questo esempio si considera ''blackbox'', che è un ambiente grafico minimale e quindi molto veloce, che si occupa soltanto della gestione delle finestre, dei menù accessibili con il mouse e di un pannello con gli spazi di lavoro. Dev'essere installato sulla macchina remota: | |||
<pre> | |||
# apt-get install blackbox menu | |||
</pre> | |||
Sulla macchina locale, deve essere invece installato un server grafico annidato che faccia da proxy per l'''X11 forwarding'', come per esempio <code>Xephyr</code>, che è un'evoluzione più veloce e raccomandata di <code>Xnest</code>: | |||
<pre> | |||
# apt-get install xserver-xephyr | |||
</pre> | |||
Sulla macchina locale, preparo quindi il server grafico proxy, lanciandolo in background: | |||
<pre> | |||
$ Xephyr :1 -ac -nolisten tcp -screen 1024x768 & | |||
</pre> | |||
dove: | |||
* ''':1''' è un display libero (per esempio se <code>$DISPLAY</code> è ''':0''' e non ci sono altri server X in esecuzione; altrimenti usarne un altro); | |||
* '''-ac''' significa di disabilitare l'access control (per le sole applicazioni all'interno di Xephyr; purtroppo non è possibile utilizzare entrambi gli ''access control'', non disponendo la versione compilata di Xephyr di un metodo per generare un cookie sicuro con <code>xauth generate</code>); | |||
* '''-nolisten tcp''' disabilita il protocollo TCP, permettendo soltanto connessioni locali (o redirette, come quelle via [[SSH]]); | |||
* '''-screen''' ''XRES'''''x'''''YRES'' determina la risoluzione della finestra, che di default (e per ragioni di sicurezza) non potrà essere ridimensionata; | |||
* '''&''' al termine del comando, serve per lanciarlo in backgorund (è un'istruzione della [[bash|shell]], non di <code>Xephyr</code>). | |||
Poi lancio <code>blackbox</code> sul display (''':1''' o comunque quello usato con <code>Xephyr</code>) del server proxy. Sempre dalla macchina locale: | |||
<pre> | |||
$ DISPLAY=:1 ssh utente_remoto@host_remoto -X -C -- blackbox | |||
</pre> | |||
Nella finestra aperta da <code>Xephyr</code> si vedrà l'ambiente grafico di <code>blackbox</code>, da cui sarà possibile aprire tutte le applicazioni installate sulla macchina remota, senza bisogno di lanciarle singolarmente da terminale. | |||
==== Senza access control ==== | ==== Senza access control ==== | ||
Riga 95: | Riga 130: | ||
Per disattivare il controllo di accesso, effettuando una connessione fidata (''trusted X11 forwarding''), si deve utilizzare l'opzione <code>-Y</code>: | Per disattivare il controllo di accesso, effettuando una connessione fidata (''trusted X11 forwarding''), si deve utilizzare l'opzione <code>-Y</code>: | ||
<pre> | <pre> | ||
$ ssh -Y | $ ssh -Y utente_remoto@host_remoto | ||
utente_remoto@host_remoto:~$ (<-- sessione SSH) | |||
</pre> | </pre> | ||
Riga 103: | Riga 138: | ||
{{Autori | {{Autori | ||
|Autore = [[Utente:HAL 9000|HAL 9000]] | |Autore = [[Utente:HAL 9000|HAL 9000]] 17:55, 28 nov 2015 (CET) | ||
|Estesa_da = | |Estesa_da = | ||
|Verificata_da = | |Verificata_da = |
contributi