Strona główna
» Jak
»
Uruchomienie przekierowania X11 w YaST przez SSH
Uruchomienie przekierowania X11 w YaST przez SSH
Jeśli YaST kończy działanie z powodu XIO: fatal IO error 11 (Resource temporarily unavailable)połączenia SSH, najpierw wypróbuj opisane w dokumentacji SUSE obejście Qt: QT_XCB_GL_INTEGRATION=none yast.ssh. W przypadku zainstalowanego systemu SLES i konkretnego modułu YaST, użyj tej samej zmiennej przed tym modułem, na przykład QT_XCB_GL_INTEGRATION=none yast2 disk. Jeśli nie można uruchomić żadnej aplikacji graficznej, najpierw napraw przekierowanie X11: połącz się z ssh -X, sprawdź, czy zdalna powłoka ma DISPLAYwartość i zweryfikuj, czy serwer ma włączone przekierowanie X11.
Przewodnik wdrażania SUSE SLES 15 SP7 dokumentuje dokładnie tę awarię XIO oraz obejście problemu z wykorzystaniem Qt i alternatywę dla ncurses. Fragment ten pojawia się w kontekście instalacji zdalnej, dlatego należy go używać jako ukierunkowanej poprawki dla podobnego zachowania YaST-przez SSH; nie dowodzi on, że każda awaria uruchomienia YaST ma tę samą przyczynę. Poniższe testy pozwalają odróżnić ten przypadek od braku lokalnego serwera X, wyłączonego przekierowania SSH lub problemu z uwierzytelnianiem X.
1. Przed rozwiązywaniem problemów z YaST sprawdź, czy przekierowanie X11 działa
Przekierowanie X11 przesyła ruch okienkowy zdalnej aplikacji przez SSH do serwera X na komputerze lokalnym. Komputer lokalny potrzebuje zatem działającego serwera X, a klient SSH musi zażądać przekierowania. Na komputerze stacjonarnym X11 otwórz nowy terminal i połącz się w następujący sposób:
ssh -X admin@server.example.com
Zmień konto i hosta na swoje. Po zalogowaniu uruchom:
echo "$DISPLAY"
Wartość taka jak localhost:10.0wskazuje, że SSH skonfigurował przekierowany wyświetlacz. Jest to przykład, a nie stała wartość: numer wyświetlacza może się różnić. Jeśli dane wyjściowe są puste, wyloguj się i połącz ponownie za pomocą -X. Jeśli pole pozostaje puste, sprawdź ustawienia SSH po stronie klienta i konfigurację serwera w następnej sekcji. Nie ustawiaj ręcznie DISPLAYzgadywanej wartości; SSH tworzy wyświetlacz proxy dla danej sesji.
Przykład terminala: zdalna powłoka ma przekazaną wartość DISPLAY po połączeniu SSH nawiązanym za pomocą opcji -X.
Jeśli używasz PuTTY w systemie Windows, włącz przekierowanie X11 w ustawieniach sesji Połączenie > SSH > X11 i upewnij się, że lokalny serwer X jest uruchomiony. Podręcznik wdrażania SUSE wspomina o tym wymogu. Zdalny host nie może wyświetlić okna, jeśli komputer lokalny nie ma serwera X, nawet po pomyślnym zalogowaniu przez SSH.
2. Sprawdź serwer SSH SLES i uwierzytelnianie X
Na hoście SLES administrator może sprawdzić konfigurację demona SSH:
Obowiązująca polityka serwera musi zezwalać na przekazywanie X11 i xauthbyć dostępna dla przekazywania uwierzytelniania. SUSE dokumentuje X11Forwarding Yesustawienia po stronie serwera i zauważa, że SSH ustawia zdalne połączenie, DISPLAYgdy klient łączy się z -X. Prosta procedura grepmoże pomijać ustawienia w dołączonych plikach konfiguracyjnych lub Matchblokach warunkowych; jeśli dane wyjściowe wydają się kolidować z działaniem, administrator SSH powinien sprawdzić obowiązującą konfigurację, zamiast dodawać duplikaty wierszy.
Przykład terminala: sprawdź ustawienie sshd X11Forwarding i upewnij się, że narzędzie xauth jest dostępne na hoście SLES.
Jeśli dokonasz zmiany sshd_config, sprawdź poprawność pliku przed ponownym załadowaniem demona:
sudo sshd -t
sudo systemctl reload sshd
Uruchamiaj je tylko z uprawnieniami administratora. Pozostaw otwartą sesję SSH podczas testowania nowej, aby błąd konfiguracji nie zablokował Ci dostępu. Następnie rozłącz się i połącz ponownie; ustawienia przekierowania są negocjowane podczas uruchamiania sesji SSH. Unikaj otwierania portu TCP 6000 na serwerze lub używania go xhost +jako skrótu. Przekierowanie SSH służy do tunelowania ruchu X i zarządzania jego uwierzytelnianiem; bezpośredni dostęp do X może udostępniać ekran innym maszynom.
3. Zastosuj obejście Qt specyficzne dla YaST
Jeśli DISPLAYjest ustawiona i otwiera się inna przekazana aplikacja X, ale YaST kończy się niepowodzeniem z powyższym błędem XIO, wypróbuj udokumentowane nadpisanie środowiska dla tego jednego uruchomienia:
QT_XCB_GL_INTEGRATION=none yast.ssh
W przypadku standardowo zainstalowanego systemu należy uruchomić wymagany moduł, zamiast zakładać, że asystent instalacji jest obecny. Na przykład, SUSE dokumentuje ten formularz modułu:
QT_XCB_GL_INTEGRATION=none yast2 disk
Przykład terminala: obejście problemu integracji Qt XCB udokumentowane przez SUSE dla YaST przez SSH.
Zmienna dotyczy tylko następującego po niej polecenia; nie zmienia trwale ustawień Qt ani polityki SSH. Dokładne yast.sshpolecenie jest używane przez system SUSE do instalacji, podczas gdy zainstalowany host SLES zazwyczaj uruchamia moduły YaST z yast2. Jeśli inny moduł nie działa prawidłowo, zastąp jego udokumentowaną nazwę disk. Nie traktuj tego ustawienia środowiskowego jako poprawki dla pustego pliku DISPLAYlub klienta bez serwera X.
4. Używaj interfejsu tekstowego YaST, gdy okno nie jest potrzebne
Jeśli potrzebujesz tylko funkcji administracyjnych i nie potrzebujesz okna graficznego, skorzystaj z interfejsu ncurses YaST w terminalu SSH. W przypadku modułu dyskowego dokumentacja SUSE:
yast2 disk --ncurses
Można również jawnie zażądać zaplecza ncurses dla modułu:
YUI_PREFERRED_BACKEND=ncurses yast2 disk
Przykład terminala: wywołaj moduł dyskowy YaST z zapleczem ncurses, gdy przekierowany interfejs graficzny nie jest potrzebny.
Interfejs tekstowy całkowicie pomija przekierowanie X11 i często stanowi najprostszy wybór dla serwera zdalnego. Nadal jest to YaST i nadal zmienia konfigurację systemu; przed zatwierdzeniem należy dokładnie sprawdzić zmiany na dysku, partycjach, zaporze sieciowej i sieci. W przypadku systemu instalacyjnego SLES, SUSE twierdzi, że YaST udostępnia interfejs ncurses, gdy lokalny serwer X jest niedostępny.
Sprawdź poprawność
Otwórz nową sesję SSH za pomocą ssh -X, upewnij się, że pole echo "$DISPLAY"jest niepuste, a następnie uruchom YaST za pomocą odpowiedniego polecenia. Sukces oznacza, że okno YaST pojawi się na pulpicie lokalnym lub moduł ncurses zostanie otwarty w terminalu, jeśli wybrano ten backend. Jeśli przekierowanie działa prawidłowo, ale po nadpisaniu Qt nadal występuje błąd XIO, zapisz pełny błąd terminala i sprawdź informacje o wydaniu SLES lub bazę wiedzy pomocy technicznej SUSE pod kątem problemu specyficznego dla wydania; ta procedura nie jest w stanie zidentyfikować niezwiązanego z Qt lub YaST błędu na podstawie samego fragmentu błędu.