Oggi impareremo una caratteristica meno conosciuta, interessante e utile su Linux. Sono sicuro che molti di voi conoscono SSH. Possiamo accedere ai sistemi Linux remoti in modo sicuro tramite SSH. Ma sapevi che è possibile inoltrare X su SSH per eseguire applicazioni grafiche in remoto? Sì! Questo meccanismo è noto come inoltro X11 . In questa guida, configureremo l'inoltro X11 utilizzando SSH in Linux.
Cos'è l'inoltro X11?
L'inoltro X11 è un metodo per consentire a un utente di avviare un'applicazione grafica installata su un sistema Linux remoto e di inoltrare la finestra dell'applicazione (schermo) al sistema locale. Il sistema remoto non deve disporre di un server X o di un ambiente desktop grafico. Pertanto, la configurazione dell'inoltro X11 tramite SSH consente agli utenti di eseguire in modo sicuro le applicazioni grafiche su una sessione SSH.
Per dirla in parole povere,
- Ci colleghiamo a un sistema remoto tramite SSH,
- E poi lanciamo un'applicazione GUI (installata nel sistema remoto) da quella sessione SSH,
- Ora, l'applicazione GUI viene eseguita sul sistema remoto, ma la finestra dell'applicazione viene visualizzata sul nostro sistema locale. Quindi possiamo usare questo programma GUI remoto sul tuo sistema locale come usiamo un programma installato localmente.
Chiaro? Ora andiamo avanti e vediamo come eseguire applicazioni GUI remote su una sessione SSH.
Configura l'inoltro X11 utilizzando SSH in Linux
Ai fini di questa guida, utilizzerò i seguenti due sistemi:
- Server remoto:server minimo CentOS 8 (senza GUI).
- Sistema locale - Ubuntu 20.04 LTS con Gnome DE.
Configurare l'inoltro X11 è banale.
Assicurati di aver installato "xauth" sul tuo sistema server remoto. Se non è installato, esegui il seguente comando come utente root o sudo:
# dnf install xorg-x11-xauth
Vai al tuo sistema remoto (nel mio caso è CentOS 8) e modifica "/etc/ssh/ssh_config" file utilizzando il tuo editor preferito:
# nano /etc/ssh/ssh_config
Aggiungi/modifica la riga seguente:
[...] X11Forwarding yes
Configura l'inoltro X11 utilizzando SSH in Linux
Premi Ctrl+O per salvare e Ctrl+X per chiudere il file. Riavvia il servizio sshd per effettuare le modifiche:
# systemctl restart sshd
Fatto! Abbiamo configurato l'inoltro X11.
Ora vai al tuo sistema client (nel mio caso è Ubuntu 20.04) e accedi al server remoto tramite SSH usando il comando:
$ ssh -X [email protected]
Qui, -X l'opzione viene utilizzata per abilitare l'inoltro X11 su SSH. Sostituisci "[email protetta]" con il nome utente e l'indirizzo IP del tuo server remoto.
Vedrai per la prima volta il seguente messaggio di avviso.
/usr/bin/xauth: file /root/.Xauthority does not exist
Tuttavia, il .Xauthority
il file dovrebbe essere generato automaticamente durante il primo accesso, quindi gli accessi successivi dovrebbero andare bene.
Quindi, avvia qualsiasi applicazione GUI da questa sessione SSH. Ho già installato l'editor di testo grafico Gedit nel mio server CentOS 8, quindi lo avvierò usando il comando:
# gedit
La schermata della finestra della GUI di gedit apparirà ora nel tuo sistema locale.
Esegui applicazioni grafiche remote su una sessione SSH in Linux
Puoi interagire con l'applicazione Gedit installata sul server remoto utilizzando il display, il mouse e la tastiera del tuo sistema locale.
Anche se il mio server CentOS 8 non ha un desktop GUI, posso essere in grado di aprire l'editor grafico Gedit e usarlo dal mio sistema Ubuntu locale. Ecco la demo visiva:
Configura l'inoltro X11 in Putty
Se usi Mastice client per accedere a sistemi remoti, inserisci l'IP o il nome host del tuo sistema remoto nella scheda Sessione:
Connettiti al sistema remoto usando Putty
Quindi, vai a Connessione -> SSH -> X11 e abilita l'opzione di inoltro X11. Fare clic su Apri per stabilire una nuova sessione di mastice:
Configura l'inoltro X11 in Putty
Immettere il nome utente e la password del server remoto. Dopo esserti connesso al sistema remoto tramite Putty, avvia qualsiasi applicazione X installata nel server remoto.
Esegui applicazioni grafiche sulla sessione Putty
Inizia a interagire con l'applicazione GUI remota dal tuo sistema locale!