Wyszukiwanie w witrynie

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-xauth

Przejdź 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_config

Dodaj/zmodyfikuj następujący wiersz:

[...]
X11Forwarding yes

Skonfiguruj 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 sshd

Zrobione! 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.52

Tutaj 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 exist

Jednak 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:

gedit

Ekran 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!

Powiązane artykuły