Strona główna
» LINUX
»
Jak skonfigurować przekierowanie X11 w systemie Linux przez SSH
Jak skonfigurować przekierowanie X11 w systemie Linux przez SSH
Przekierowanie X11 umożliwia uruchomienie graficznej aplikacji Linux na komputerze zdalnym i wyświetlenie jej okna na pulpicie lokalnym przez SSH. Skonfiguruj je, włączając przekierowanie na zdalnym serwerze SSH, upewniając się, że serwer ma xauth, sprawdzając, czy pulpit lokalny ma wyświetlacz X i łącząc się z ssh -X. Przekierowuje to pojedyncze okna aplikacji; nie tworzy pełnej sesji pulpitu zdalnego.
Czego potrzebujesz przed konfiguracją
Komputer, na którym wpisujesz polecenie SSH, jest klientem . Wymaga klienta OpenSSH i aktywnej sesji graficznego pulpitu z interfejsem X. Wiele pulpitów Linux udostępnia je bezpośrednio lub za pośrednictwem XWayland, gdy sesja korzysta z Wayland. Jeśli echo "$DISPLAY"na lokalnym pulpicie nic nie wyświetla, oznacza to, że nie ma interfejsu SSH, z którego można korzystać w tej powłoce.
Komputer zdalny jest serwerem . Potrzebuje serwera OpenSSH i xauthnarzędzia, aby SSH mógł utworzyć tymczasowy plik cookie autoryzacji używany do wyświetlania przekazywanych danych. W systemach Debian lub Ubuntu zainstaluj je w systemie zdalnym za pomocą sudo apt update. sudo apt install openssh-server xauthW innej dystrybucji użyj menedżera pakietów, aby zainstalować serwer OpenSSH i pakiet, który go udostępnia xauth. Przed zmianą konfiguracji upewnij się, że działa standardowe logowanie SSH.
Sprawdź, czy lokalny terminal może uruchomić klienta OpenSSH. Serwer zdalny również potrzebuje xauth.
Skonfiguruj przekierowanie X11 przez SSH
1. Włącz przekierowanie w konfiguracji serwera
Na komputerze zdalnym edytuj plik konfiguracji serwera , zwykle /etc/ssh/sshd_configkorzystając z edytora z uprawnieniami administratora:
sudoedit /etc/ssh/sshd_config
Znajdź istniejące aktywne X11Forwardingustawienie i zmień je na:
X11Forwarding yes
Jeśli ustawienie jest niedostępne, dodaj je w sekcji globalnej przed dowolnym Matchblokiem. Niektóre dystrybucje ładują również pliki z /etc/ssh/sshd_config.d/; sprawdź dołączone pliki pod kątem konfliktów ustawień. MatchReguła lub DisableForwarding yesmoże nadal uniemożliwiać przekierowanie dla konkretnego konta. Pozostaw X11UseLocalhostwartość domyślną, chyba że masz konkretny problem ze zgodnością: OpenSSH zazwyczaj wiąże serwer proxy przekierowujący z pętlą zwrotną. Oficjalny podręcznik sshd_config opisuje te opcje po stronie serwera.
Ustawienia serwera znajdują się w pliku sshd_config, a nie w pliku klienta SSH ssh_config.
2. Sprawdź poprawność konfiguracji i przeładuj SSH
Przed ponownym załadowaniem demona sprawdź plik pod kątem błędów składniowych i potwierdź efektywną wartość przekierowania:
Pierwsze polecenie powinno zakończyć się bez błędu; drugie powinno zgłosić błąd x11forwarding yes. Jeśli używasz Matchreguł, przetestuj poprawność konfiguracji dla odpowiedniego użytkownika i połączenia, zgodnie z opisem w podręczniku OpenSSH. Napraw wszelkie błędy przed ponownym załadowaniem, aby nie zakłócić dostępu SSH.
Przeładuj nazwę usługi używaną przez Twoją dystrybucję. Debian i Ubuntu często używają:
sudo systemctl reload ssh
W systemach Fedora i rodzinie RHEL powszechnie stosowane są:
sudo systemctl reload sshd
Jeśli przeładowanie nie jest obsługiwane, użyj restarttej samej usługi. Pozostaw bieżącą sesję otwartą i przetestuj nowe połączenie przed jego zamknięciem. Dokumentacja serwera OpenSSH w Ubuntu zawiera informacje o pliku serwera i fragmentach kodu konfiguracyjnego używanych w Ubuntu.
3. Połącz się z lokalnego pulpitu Linux
Na kliencie zażądaj przekierowania X11 do niezaufanego urządzenia za pomocą -X:
ssh -X user@server.example.com
Zastąp przykładową nazwę użytkownika i hosta swoimi. Jeśli serwer SSH nasłuchuje na niestandardowym porcie, dodaj jego numer portu za pomocą -p:
ssh -X -p 2222 user@server.example.com
Po zalogowaniu się uruchom program graficzny zainstalowany na zdalnym hoście. Aby szybko sprawdzić, xclockczy ta aplikacja testowa jest dostępna, lub uruchom inny zainstalowany program graficzny. Protokół SSH ustawia wartość sesji zdalnej DISPLAYi automatycznie przekazuje połączenie X11; nie kopiuj lokalnej wartości wyświetlania na serwer ani nie ustawiaj jej ręcznie.
Opcja -Xżąda przekierowania X11, gdy rozpoczyna się sesja SSH.Przekierowana aplikacja GUI pojawia się jako okno na pulpicie lokalnym, dopóki sesja SSH pozostaje otwarta.
Bezpieczeństwo i rozwiązywanie problemów
Użyj -Xdomyślnie. Ta -Yopcja włącza zaufane przekierowanie, które usuwa ograniczenia bezpieczeństwa X11 i daje aplikacji zdalnej szerszy dostęp do lokalnego ekranu. Używaj jej tylko z serwerem i aplikacją, którym ufasz. OpenSSH ostrzega, że przekierowanie X11 może narazić ekran klienta na ataki; zapoznaj się z podręcznikiem ssh i podręcznikiem ssh_config, aby dowiedzieć się, jak odróżnić przekierowanie zaufane od niezaufanego.
„Żądanie przekierowania X11 nie powiodło się”: Sprawdź efektywną wartość serwera X11Forwarding, upewnij się, że xauthjest zainstalowany na zdalnym hoście i poszukaj restrykcyjnych Matchblokad lub DisableForwardingustawień.
DISPLAYjest pusty w sesji zdalnej: Rozłącz się i połącz ponownie za pomocą ssh -X. Sprawdź, czy lokalna powłoka ma działający wyświetlacz graficzny i czy połączenie dociera do serwera, który właśnie skonfigurowałeś.
W oknie pojawia się komunikat, że nie można otworzyć ekranu: Sprawdź, czy sesja pulpitu lokalnego jest nadal aktywna. Powłoka bez dostępu do ekranu pulpitu nie może wyświetlić przesłanych okien.
xclockNie znaleziono: Program testowy jest po prostu nieobecny. Wypróbuj aplikację GUI już zainstalowaną na komputerze zdalnym; ten komunikat sam w sobie nie dowodzi, że przekierowanie SSH jest uszkodzone.
Przekierowywanie X11 jest wygodne w przypadku sporadycznie używanych narzędzi zdalnych, ale aplikacje graficzne, które często odświeżają dane, mogą wydawać się powolne przy połączeniu o dużym opóźnieniu. Do pracy na całym pulpicie lub w przypadku zadań wymagających dużej ilości grafiki, należy skorzystać z rozwiązania pulpitu zdalnego zaprojektowanego specjalnie do tego celu.