Jak skonfigurować przekazywanie X11 za pomocą protokołu SSH w systemie Linux
Dzisiaj nauczymy się mniej znanej, interesującej i przydatnej funkcji Linuksa. Jestem pewien, że większość z Was wie o SSH. Możemy bezpiecznie uzyskać dostęp do zdalnych systemów Linux poprzez SSH. Ale czy wiesz, że możliwe jest przesyłanie dalej X przez SSH w celu zdalnego uruchamiania aplikacji graficznych? Tak! Mechanizm ten nazywany jest przekazywaniem X11. W tym przewodniku skonfigurujemy przekazywanie X11 przy użyciu protokołu SSH w systemie Linux.
Co to jest przekazywanie X11?
Przekazywanie X11 to metoda umożliwiająca użytkownikowi uruchomienie aplikacji graficznej zainstalowanej na zdalnym systemie Linux i przesłanie okien (ekranu) aplikacji do systemu lokalnego. System zdalny nie musi mieć serwera X ani środowiska graficznego. Dlatego skonfigurowanie przekazywania X11 przy użyciu protokołu SSH umożliwia użytkownikom bezpieczne uruchamianie aplikacji graficznych w sesji SSH.
Ujmując to w kategoriach laickich,
- Łączymy się ze zdalnym systemem poprzez SSH,
- A następnie z tej sesji SSH uruchamiamy aplikację GUI (która jest instalowana w systemie zdalnym),
- Teraz aplikacja GUI działa na systemie zdalnym, ale okno aplikacji pojawia się w naszym systemie lokalnym. Możemy więc używać tego zdalnego programu GUI w systemie lokalnym w taki sam sposób, w jaki używamy programu zainstalowanego lokalnie.
Jasne? Przejdźmy teraz dalej i zobaczmy, jak uruchamiać zdalne aplikacje GUI w sesji SSH.
Skonfiguruj przekazywanie X11 przy użyciu protokołu SSH w systemie Linux
Na potrzeby tego przewodnika będę używać następujących dwóch systemów:
- Serwer zdalny — minimalny serwer CentOS 8 (bez GUI).
- System lokalny - Ubuntu 20.04 LTS z Gnome DE.
Konfiguracja przekazywania X11 jest banalna.
Upewnij się, że na zdalnym serwerze zainstalowałeś "xauth". Jeśli nie jest zainstalowany, uruchom następujące polecenie jako użytkownik root lub sudo:
dnf install xorg-x11-xauthPrzejdź do swojego systemu zdalnego (w moim przypadku jest to CentOS 8) i edytuj plik "/etc/ssh/ssh_config" za pomocą swojego ulubionego edytora:
nano /etc/ssh/ssh_configDodaj/zmodyfikuj następujący wiersz:
[...]
X11Forwarding yesSkonfiguruj przekazywanie X11 przy użyciu protokołu SSH w systemie Linux
Naciśnij Ctrl+O, aby zapisać i Ctrl+X, aby zamknąć plik. Uruchom ponownie usługę sshd, aby zastosować zmiany:
systemctl restart sshdZrobione! Skonfigurowaliśmy przekazywanie X11.
Teraz przejdź do swojego systemu klienckiego (w moim przypadku jest to Ubuntu 20.04) i uzyskaj dostęp do zdalnego serwera poprzez SSH za pomocą polecenia:
ssh -X root@192.168.225.52Tutaj opcja -X służy do włączenia przekazywania X11 przez SSH. Zastąp „root@192.168.225.52” nazwą użytkownika i adresem IP zdalnego serwera.
Po raz pierwszy zobaczysz następujący komunikat ostrzegawczy.
/usr/bin/xauth: file /root/.Xauthority does not existJednak plik .Xauthority powinien zostać wygenerowany automatycznie przy pierwszym logowaniu, zatem przy kolejnych logowaniach wszystko powinno być w porządku.
Następnie uruchom dowolne aplikacje GUI z tej sesji SSH. Zainstalowałem już graficzny edytor tekstu Gedit na moim serwerze CentOS 8, więc zamierzam go uruchomić za pomocą polecenia:
geditEkran okna GUI gedit pojawi się teraz w systemie lokalnym.
Uruchamiaj zdalne aplikacje graficzne poprzez sesję SSH w systemie Linux
Możesz wchodzić w interakcję z aplikacją Gedit zainstalowaną na zdalnym serwerze za pomocą wyświetlacza, myszy i klawiatury systemu lokalnego.
Mimo że mój serwer CentOS 8 nie ma pulpitu GUI, mogę otworzyć edytor graficzny Gedit i używać go z lokalnego systemu Ubuntu. Oto wizualne demo:
Skonfiguruj przekazywanie X11 w Putty
Jeśli używasz klienta Putty do uzyskiwania dostępu do systemów zdalnych, wprowadź adres IP lub nazwę hosta systemu zdalnego na karcie Sesja:
Połącz się ze zdalnym systemem za pomocą Putty
Następnie przejdź do Połączenie -> SSH -> X11 i włącz opcję przekazywania X11. Kliknij Otwórz, aby ustanowić nową sesję Putty:
Skonfiguruj przekazywanie X11 w Putty
Wprowadź nazwę użytkownika i hasło zdalnego serwera. Po połączeniu się ze zdalnym systemem za pomocą Putty, uruchom dowolną aplikację X zainstalowaną na zdalnym serwerze.
Uruchamiaj aplikacje graficzne w sesji Putty
Rozpocznij interakcję ze zdalną aplikacją GUI z poziomu systemu lokalnego!




