Przeczytałem edytowaną wersję pytania, a jeśli dobrze cię rozumiem, chcesz uruchomić program z SSH bez pokazywania GUI ... po prostu chcesz uruchomić program i to zależy od X Windows, więc potrzebuję go, aby jakoś połączyć się z X Windows na samym serwerze.
Są dwie rzeczy, które musisz zrobić. Musisz zezwolić na połączenia spoza X Windows, a następnie powiedzieć powłoce (w SSH), z którym serwerem X ma się połączyć.
Po pierwsze, zezwalaj na połączenia przychodzące do serwera X. Otwórz okno terminala w X Windows na serwerze. (Musisz mieć do tego dostęp, w przeciwnym razie nie możesz tego zrobić.)
Wydaj następujące polecenie:
xhost +
Powinien powiedzieć „połączenia dozwolone ze wszystkich hostów” lub coś w tym celu.
Następnie, pozostając w X Windows, problem:
echo $DISPLAY
Spowoduje to wyświetlenie identyfikatora wyświetlacza. Zapisz to lub zapamiętaj. Zazwyczaj będzie to „: 0” lub „: 0.0”, ale nie martw się, jeśli jest inaczej.
To wszystko, co musisz zrobić z poziomu samego systemu Windows X.
Teraz SSH na serwerze z dowolnego miejsca. Wydaj polecenie:
export DISPLAY=[what-the-echo-command-gave-you]
I to powinno być to! Teraz powinieneś być w stanie uruchomić dowolne okna X z tej powłoki SSH i pojawi się na lokalnym serwerze X Windows.
Mam nadzieję, że to pomoże!
xhost +
to bardzo zły pomysł. Jeśli twój użytkownik uruchomił Xserver, powinieneś już mieć odpowiedni plik Xauthority, nie musisz się bawić z serwerem acls.