Po uruchomieniu aplikacji X11 (XQuartz 2.3.6, xorg-server 1.4.2-apple56) na moim Macu (OS X 10.6.8), otwarciu terminala w X11 i uruchomieniu xhost +
, a następnie ssh -Y
na mojej maszynie wirtualnej Ubuntu 10.04 (działającej na VMware Połączenie). Kiedy uruchamiam gedit .bashrc
(na przykład), otrzymuję:
(gedit:9510): Gtk-WARNING **: cannot open display:
set | grep DISPLAY
nic nie zwraca.
Ale jeśli ssh -Y
przejdę na moją maszynę Ubuntu 11.04, gedit .bashrc
działa. echo $DISPLAY
zwraca „localhost: 10.0”.
Próbowałem export DISPLAY=localhost:10.0
, wpuszczając się na moją maszynę wirtualną, a następnie działając gedit .bashrc
, ale otrzymuję:
(gedit:9625): Gtk-WARNING **: cannot open display: localhost:10.0
Co może się różnić w konfiguracji dwóch różnicowych maszyn Ubuntu, które wyjaśniłyby, dlaczego jedna działa, a druga nie?
Aktualizacja: Jak zasugerował Zoredache w komentarzu poniżej, uruchomiłem sudo apt-get install xbase-clients
, ale nadal mam ten sam problem.
X11Forwarding
na Ubuntu One, żexbase-clients
zainstalowałeś i możesz uruchomić Xapps na Macu na terminalu, z którego tworzysz połączenie ssh. (Sprawdź, czy$DISPLAY
ustawiony jest na terminalu uruchomić ssh z .Odpowiedzi:
Sprawdź sshd_config serwera (normalnie
/etc/ssh/sshd_config
) i upewnij się, że opcja X11 Forwarding jest włączona w wierszuJeśli X11 Forwarding nie jest określony, domyślnie nie ma na maszynach Debiana, które mam do sprawdzenia.
źródło
Z xhost +: Jak naprawić błąd „Cannot Open Display” podczas uruchamiania GUI na zdalnym serwerze :
źródło
xhost +
jest bardzo niebezpieczne i nie należy go używać! Jak wspomniał Stefan Rogin, atakujący może następnie z hosta połączyć się z Twoją XSession, odczytać wszystko, co piszesz, a nawet zmienić ekran, który widzisz.Miałem ten problem również podczas logowania się do maszyny Wirtualnej Ubuntu z systemu Mac OS X - z jakiegoś powodu nie wydaje się, aby „localhost” w zmiennej displayowej. Ustaw adres IP ręcznie, jak sugeruje harrymc:
Wtedy programy X11 powinny być w porządku. Nie wydaje się konieczne, aby informować system operacyjny, że localhost i 127.0.0.1 są równoważne, ale przynajmniej działa.
źródło
Miałem ten problem z moim serwerem KVM CentOS, brakowało mi programu „xauth”.
źródło
Jeśli masz ten problem po pewnym czasie pracy z
-X
arg. lub po prostuForwardX11
w / etc / ssh / ssh_config, a następnie uruchom$ ssh username@hostname -Y
, aby włączyć zaufane przekazywanie X11 , nie znam dokładnej przyczyny, ale domyślam się, że-X
niektóre funkcje wygasają po pewnym czasie, prawdopodobnie w celu zwiększenia bezpieczeństwa.Oto, co znalazłem w Internecie:
źródła:
źródło
Właśnie przetestowane na moim Macu, inne systemy mogą być OK :
-X
parametremźródło
Podczas uruchamiania UXTERM lub XTERM po prostu problem
Zmienna będzie tam. Następnie wystarczy go ustawić i wyeksportować.
źródło
Musiałem wprowadzić
/etc/ssh/sshd_config
następujące informacje:Zamiast tego ustaw na „tak”. Dziwne, jeśli wartością domyślną jest „NIE” Użytkownicy używający szpachli z XMing pod Windows. Używam prostego ssh nad Fedorą. Czasami zaczynał nam dawać
Ponowne uruchomienie serwera zwykle to naprawia, ale jest to głupie. Wykonano powyższe czynności, ponownie uruchomiono usługę
sshd
na serwerze i ponownie poprawnie działały nowe połączenia.źródło
Miałem również ten problem z Solaris 10 i stwierdziłem, że detektor nie został skonfigurowany.
źródło
W CentOS 6.5 nagle straciłem dostęp do zdalnych programów X po zadziałaniu z / etc / hosts. Ten sam objaw pustej zmiennej $ DISPLAY (brak pomocy w ustawianiu / eksportowaniu jej ręcznie).
Konieczny jest wpis 127.0.0.1 wskazujący rzeczywistą nazwę hosta; w rzeczywistości kolejność wydaje się również mieć znaczenie (wstaw na końcu i nie będzie działać ...)
Po naprawieniu tego xeyes, xclock i inne zabawki testowe X znów działają, dlatego mój potrzebny virt-manager również powrócił do pracy.
źródło
Właśnie znalazłem fajną czkawkę w mojej konfiguracji, która uniemożliwiła przekazywanie x: Mój firewall blokował wszystkie połączenia z localhost, uniemożliwiając w ten sposób dostęp do tunelu
źródło
Jeśli używasz Konsoli, po prostu przełącz się na inny emulator terminala, taki jak Terminal Xfce i spróbuj ponownie, używając roota.
źródło
otwórz terminal $ ssh nazwa użytkownika @ nazwa hosta -X
eksport DISPLAY = „127.0.0.1:10.0” wszystko powinno działać.
źródło
DISPLAY='localhost:10.0'
nie działa.Ta konfiguracja działa dla mnie:
Lokalny (64-bitowy Cygwin w systemie Windows 10)
DISPLAY=:0
Serwer (Amazon EC2 RHEL 7.6)
DISPLAY=:10.0
Ustawienia te znaleziono, klikając „X menu aplikacji na: 0” na pasku zadań i wybierając Narzędzia systemowe> Terminal
źródło
Po wielu frustracjach dowiedziałem się, że wpis nazwy hosta serwera w jego pliku / etc / host jest niepoprawny.
źródło