Il server grafico X svolge un ruolo ormai fondamentale: fornisce la base per l'interfaccia grafica delle applicazioni. Nonostante sia estremamente avanzato e supporti le schede video di ultimissima generazione, ha un architettura che potrebbe sembrare "antiquata" alla maggior parte di coloro che non lo conoscono bene. È quasi naturale imbattersi in problemi di vario genere durante l'utilizzo di questo sistema a finestre.
Chiamiamo locale la macchina su cui stiamo lavorando e remoto la macchina a cui ci collegheremo e che sulla quale è installata l'applicazione che vogliamo visualizzare su locale. Per cominciare bisogna dire a locale di accettare le richieste di remoto:
locale:~% xhost +remotoOra ci colleghiamo via SSH a remoto e, dopo aver effettuato il login, esportiamo la variabile DISPLAY in modo che punti al primo display di locale:
remoto:~% export DISPLAY=locale:0oppure, se usiamo una shell C:
remoto:~% setenv DISPLAY locale:0Ora, dopo aver lanciato X su locale, potremo lanciare l'applicazione da remoto e vederla sullo schermo di locale.
Può risultare utile anche un altro metodo utilizzato molte volte, specialmente se è presente un firewall che ci consente di utilizzare solo la porta 22, tipica di SSH. Su remoto, apriamo /etc/ssh/sshd_config, il file di configurazione di sshd e inseriamo la riga
X11Forwarding yesFatto ciò aggiungiamo la riga
ForwardX11 yesal file di configurazione /etc/ssh/ssh_config di locale se vogliamo valga per tutti gli utenti, oppure possiamo usare il file $HOME/.ssh/config per solo un utente. Eseguiamo ora X su locale e, da remoto, lanciamo l'applicazione che vogliamo far apparire sul monitor di locale.