Home
» LINUX
»
Come configurare l'inoltro X11 su Linux tramite SSH
Come configurare l'inoltro X11 su Linux tramite SSH
L'inoltro X11 consente di eseguire un'applicazione grafica Linux su un computer remoto e visualizzarne la finestra sul desktop locale tramite SSH. Per configurarlo, è necessario abilitare l'inoltro sul server SSH remoto, verificare che il server disponga di xauthun'interfaccia X, controllare che il desktop locale abbia un display X e connettersi tramite SSH ssh -X. Questa operazione inoltra singole finestre dell'applicazione; non crea una sessione desktop remoto completa.
Cosa ti serve prima di configurarlo
Il computer su cui si digita il comando SSH è il client . Richiede il client OpenSSH e una sessione desktop grafica attiva con un display X. Molti desktop Linux forniscono questa funzionalità direttamente o tramite XWayland quando la sessione utilizza Wayland. Se echo "$DISPLAY"sul desktop locale non viene visualizzato nulla, significa che non è presente alcun display utilizzabile da SSH in quella shell.
Il computer remoto funge da server . Necessita del server OpenSSH e xauthdell'utilità necessaria affinché SSH possa creare il cookie di autorizzazione temporaneo utilizzato per la visualizzazione inoltrata. Su Debian o Ubuntu, installali sul sistema remoto con sudo apt updatee sudo apt install openssh-server xauth. Su un'altra distribuzione, utilizza il suo gestore di pacchetti per installare il server OpenSSH e il pacchetto che fornisce xauth. Assicurati che un normale accesso SSH funzioni prima di modificare la configurazione.
Verifica che il terminale locale possa eseguire il client OpenSSH; anche il server remoto necessita di xauth.
Configurare l'inoltro X11 tramite SSH
1. Abilitare l'inoltro nella configurazione del server
Sul computer remoto, modificare il file di configurazione del server , solitamente /etc/ssh/sshd_config, utilizzando un editor con privilegi di amministratore:
sudoedit /etc/ssh/sshd_config
Trova un'impostazione attiva esistente X11Forwardinge modificala in:
X11Forwarding yes
Se l'impostazione non è presente, aggiungerla nella sezione globale prima di qualsiasi Matchblocco. Alcune distribuzioni caricano anche i file da /etc/ssh/sshd_config.d/; verificare i file inclusi per eventuali impostazioni in conflitto. Una Matchregola o DisableForwarding yespuò comunque impedire l'inoltro per un account specifico. Lasciare l'impostazione predefinita a meno che non si riscontri uno specifico problema di compatibilità: OpenSSH normalmente associa il proxy di inoltro all'interfaccia di loopback. Il manualeX11UseLocalhost ufficiale di sshd_config descrive queste opzioni lato server.
L'impostazione del server va inserita in sshd_config, non nel file di configurazione del client SSH, ssh_config.
2. Convalida la configurazione e ricarica SSH
Prima di ricaricare il demone, verificare la presenza di errori di sintassi nel file e confermare il valore di inoltro effettivo:
Il primo comando dovrebbe terminare senza errori; il secondo dovrebbe segnalare x11forwarding yes. Se si utilizzano Matchregole, testare la configurazione effettiva per l'utente e la connessione pertinenti come descritto nel manuale di OpenSSH. Correggere eventuali errori prima di ricaricare in modo da non interrompere l'accesso SSH.
Ricarica il nome del servizio utilizzato dalla tua distribuzione. Debian e Ubuntu usano comunemente:
sudo systemctl reload ssh
I sistemi Fedora e della famiglia RHEL utilizzano comunemente:
sudo systemctl reload sshd
Se il ricaricamento non è supportato, utilizzare restartlo stesso servizio. Mantenere aperta la sessione corrente e testare una nuova connessione prima di chiuderla. La documentazione del server OpenSSH di Ubuntu descrive il file del server e i frammenti di configurazione utilizzati su Ubuntu.
3. Connettiti dal desktop Linux locale
Sul client, richiedere l'inoltro X11 non attendibile con -X:
ssh -X user@server.example.com
Sostituisci il nome utente e l'host di esempio con i tuoi. Se il server SSH è in ascolto su una porta non standard, aggiungi il numero di porta con -p:
ssh -X -p 2222 user@server.example.com
Dopo aver effettuato l'accesso, avvia un programma grafico installato sull'host remoto. Per una verifica rapida, esegui xclockl'applicazione di test se è disponibile oppure avvia un altro programma GUI installato. SSH imposta DISPLAYautomaticamente il valore della sessione remota e inoltra la connessione X11; non copiare il valore di visualizzazione locale sul server né impostarlo manualmente.
Questa -Xopzione richiede l'inoltro X11 all'avvio della sessione SSH.Un'applicazione GUI inoltrata appare come una finestra sul desktop locale mentre la sessione SSH rimane aperta.
Sicurezza e risoluzione dei problemi
Utilizza questa opzione -Xper impostazione predefinita. L' -Yopzione abilita l'inoltro attendibile, che rimuove le restrizioni di sicurezza X11 e concede all'applicazione remota un accesso più ampio al display locale. Utilizzala solo con un server e un'applicazione di cui ti fidi. OpenSSH avverte che l'inoltro X11 può esporre il display del client ad attacchi; consulta il manuale di ssh e il manuale di ssh_config per la distinzione tra inoltro attendibile e non attendibile.
"Richiesta di inoltro X11 non riuscita": verificare il valore effettivo del server X11Forwarding, confermare xauthche sia installato sull'host remoto e cercare eventuali Matchblocchi o DisableForwardingimpostazioni restrittive.
DISPLAYè vuoto nella sessione remota: Disconnettiti e riconnettiti con ssh -X. Verifica che la shell locale abbia un display grafico in esecuzione e che la connessione raggiunga il server appena configurato.
La finestra segnala l'impossibilità di aprire un display: verifica che la sessione desktop locale sia ancora attiva. Una shell senza accesso al display del desktop non può visualizzare le finestre inoltrate.
xclocknon trovato: il programma di test è semplicemente assente. Prova un'applicazione con interfaccia grafica già installata sulla macchina remota; questo messaggio da solo non dimostra che l'inoltro SSH sia interrotto.
L'inoltro X11 è comodo per l'utilizzo occasionale di strumenti remoti, ma le applicazioni grafiche che si aggiornano frequentemente possono risultare lente su una connessione con latenza elevata. Per un intero desktop o per lavori che richiedono un'elevata elaborazione grafica, è consigliabile utilizzare una soluzione di desktop remoto progettata specificamente per questo scopo.