Mam z tym problem i nie wiem dlaczego. Jest wiele powiązanych pytań, ale żadne z nich mi nie pomogło.
Mam dwie maszyny wirtualne:
CentOS 7 z GNOME 192.168.1.53
Mint 17.1 Rebbeca z XFCE 192.168.1.54
Wiem, że domyślnie eksportowanie ekranu powinno być proste, na przykład:
#While I am Logged in on the desktop on the MINT: user@mint:~$ xhost + #I am SSHing to the Centos from the MINT user@mint:~$ ssh -XY [email protected] #At the CentOS I export the display [root@cent ~]$ export DISPLAY=192.168.1.54:0.0 [root@cent ~]$ echo $DISPLAY 192.168.1.54:0.0 #Trying to start a simple program but I get an error message instead: [root@cent ~]$ xclock Error: Can"t open display: 192.168.1.54:0.0
Co robię źle?
Próbowałem sugestii na kilku forach, ale nadal otrzymuję komunikat o błędzie . Próbowałem również wyeksportować wyświetlacz z mennicy do Centosa (w drugą stronę) i nadal otrzymuję ten sam błąd, ale tym razem w Mennicy.
Czy to możliwe, że błąd jest spowodowany tym, że jeden system ma XFCE i inne GNOME?
Myślę, że w jednej / obu dystrybucjach mogą obowiązywać pewne domyślne ustawienia zabezpieczeń, których nie znam.
Próbowałem też edytować /etc/gdm/custom.conf
w CentOS, jak wyjaśniono tutaj:
http://www.softpanorama.org/Xwindows/Troubleshooting/can_not_open_display.shtml
Odpowiedź
Próbujesz utworzyć tunel X przez SSH, a następnie przesłonisz go, podając adres IP który omija tunel SSH. To nie działa. Podczas tunelowania SSH, SSH zajmuje się przesyłaniem danych między lokalnym i zdalnym adresem IP, otwierając port na hoście lokalnym na każdym komputerze, z którym rozmawia. Nie można określić adresu IP żadnego komputera.
Musisz wyeksportować ekran, który jest tunelowany przez SSH, co oznacza export DISPLAY=localhost:x.y
, co powinno być zrobione automatycznie, kiedy łączysz się przez ssh -X.
Komentarze
Odpowiedź
Próbujesz używać SSH do przekazywania, czy nie. Wygląda na to, że próbujesz tutaj połączyć + dopasować dwie metody. Jeden do przekazywania przez SSH, który nie jest używany do ssh.
Jeśli chcesz przekazywać dalej przez SSH, wszystko, co powinieneś zrobić na swoim kliencie, to ssh -X remotehost
. Po nawiązaniu połączenia nie musisz nic robić w sesji na serwerze. Nie jest wymagany xhost ani eksportowanie.
Zastanawiam się jednak, czy twój serwer SSH jest odpowiednio skonfigurowany do przekazywania X11. Ta opcja nie jest domyślnie włączona. Sprawdź ustawienie sshd_config X11Forwarding
.
ssh -XY [email protected]
, a następnieecho $DISPLAY
, wynikiem jestlocalhost:10.0
, co jest trochę zagmatwane ..export DISPLAY
był pierwotnie przeznaczony do użytku z telnetem?export DISPLAY
, tylko rlogin & telnet istniał, a ssh to jeszcze lata w przyszłości.