Problem
Większość ludzi chce połączyć się z serwerem przez ssh z opcją „-X” w celu uruchomienia programów GUI na zdalnym hoście przy użyciu wyświetlacza klienta. Chciałbym uruchamiać programy GUI na fizycznym monitorze podłączonym do serwera. Czy to możliwe ? Pozwól, że uściślę:
Moja sytuacja jest następująca: mam stację roboczą bez klawiatury lub myszy, ale jest do niej podłączony monitor. Chciałbym połączyć się z SSH za pomocą laptopa i móc uruchomić jakiś program graficzny, taki jak xeyes lub ssvnc, i wyświetlić go na monitorze stacji roboczej.
[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0
Edycja: dodatkowe informacje
Może powinienem wyjaśnić kilka rzeczy jaśniej:
- Mam dostęp do sudo na stacji roboczej, w razie potrzeby mogę zainstalować wszystko.
- Na stacji roboczej działa interfejs użytkownika GNOME.
- Przed odłączeniem klawiatury i myszy od stacji roboczej zalogowałem się do sesji GNOME. Dlatego można obecnie zobaczyć mój pulpit GNOME na monitorze stacji roboczej.
- Nie chcę uruchamiać programów z laptopa na stacji roboczej. Chciałbym uruchomić programy stacji roboczej na stacji roboczej. Xeyes lub jakikolwiek plik wykonywalny znajduje się na serwerze zdalnym i powinien zostać uruchomiony na monitorze serwera zdalnego
- Rozumiem, że wykonanie tego spowoduje, że mój kursor nie zostanie podłączony do interfejsu. Nie mogę klikać na rzeczy. W porządku.
Każda pomoc bardzo mile widziana!
xhost +
na swoim serwerze?Odpowiedzi:
każda aplikacja xlib musi połączyć się z serwerem xserver. musisz poinformować aplikację o połączeniu z serwerem poprzez:
-display
do pierwszego xservera można zwykle dotrzeć poprzez ciąg połączenia „: 0”. więc spróbuj tego:
albo to
źródło
XAUTHORITY
konieczne będzie również ustawienie, ponieważ serwer X11 będzie używał tymczasowego pliku Xauthority.Czy na tej stacji roboczej działa serwer X Windows? Bez tego wszystko jest dyskusyjne.
Potrzebujesz COŚ do przetworzenia danych na grafikę, piksele, kolory i lokalizacje. „Monitor” jest bezużyteczny bez jakiegoś oprogramowania do jego uruchomienia.
Zakładając, że tak. (ale z tekstu na pewno brzmi inaczej)
Biorąc pod uwagę nazwy hostów (i odpowiednie rozpoznawanie DNS przez / etc / hosts lub DNS lub cokolwiek innego) „stacji roboczej” i „laptopa” ... jeśli nie, zamień nazwy hostów komputera na odpowiednie adresy IP.
w tym momencie możesz wylogować się ze stacji roboczej, ponieważ ustawia to uprawnienia na serwerze Xserver stacji roboczej, aby umożliwić połączenie „laptopa”.
jeśli odpowiednio uruchomisz programy z ustawionym DISPLAY env var, możesz spowodować, że aplikacje będą wyświetlane na stacji roboczej podczas pracy na laptopie.
-lub-
jedna z metod będzie działać, ta ostatnia powoduje, że wszystko X11 związane z wyświetlaniem na stacji roboczej, gdy zostanie uruchomiony z tej powłoki. (mam nadzieję, że to miało sens)
Linia „xhost” pozwala zezwolić laptopowi na połączenie się z serwerem Xserver stacji roboczej. Bez niego otrzymasz odmowę dostępu, chyba że uruchomisz serwer X bez uprawnień, co nie jest tak naprawdę zalecane. Ochrona „xhost” jest nadal kiepska, ponieważ dane są przesyłane „zwykłym tekstem” między laptopem a stacją roboczą i mogą być wąchane, ale jest to łatwe rozwiązanie.
Jeśli chcesz prywatności, musisz ustawić szyfrowany tunel między laptopem a stacją roboczą (port 6000 dla wyświetlania: 0). Tak, robi się dziwnie w tym momencie.
Jeśli jesteś w kontrolowanym środowisku, wystarczy użyć polecenia „xhost + laptop”, jeśli opuścisz część „laptop” tego polecenia „xhost +”, KAŻDY może połączyć się z Xserver i wyświetlić rzeczy.
Pamiętaj, że Twoja mysz NIE jest „podłączona” do stacji roboczej Xserver i NIE będziesz w stanie manipulować oknami ani klikać na rzeczy.
Jeśli chcesz podłączyć mysz, polecam coś takiego jak x2x, synergy, vnc lub aplikacja do udostępniania ekranu oparta na X Windows.
źródło