Jak uruchomić oprogramowanie GUI na zdalnym komputerze z systemem Linux za pośrednictwem SSH


109

Czasami muszę uruchomić odtwarzacz multimedialny XMBC lub inne oprogramowanie GUI na jednym z moich komputerów (mały komputer Xubuntu używany jako centrum multimedialne).

Zwykle robię to, uruchamiając serwer X11vnc na zdalnym komputerze za pośrednictwem SSH, a następnie łącząc się z klientem Xvnc do pulpitu Xfce.

Czy istnieje sposób na uruchomienie oprogramowania GUI na zdalnym komputerze z systemem Linux za pośrednictwem SSH?

Dzięki!


Potwierdza, że ​​podejście z wybranej odpowiedzi działa, jeśli zdalnym klientem jest także komputer Mac. Pomyślnie współpracuje z macOS Sierra.
Benjamin R

Odpowiedzi:


136

Tak. Wystarczy uruchomić export DISPLAY=:0(lub jakikolwiek inny zdalny wyświetlacz jest oznaczony jako) w sesji ssh, a programy będą działać na zdalnym ekranie. Szybki przykład:

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox działa teraz na timwyświetlaczu.

Jednak po zamknięciu sesji ssh przez większość czasu aplikacja zdalna zostanie zamknięta. Jeśli chcesz rozłączyć się z ssh, ale pozostawić aplikację uruchomioną, musisz uruchomić ją w specjalny sposób, używając czegoś takiego jak screen (utrzymuje sesję ssh w tle) nohuplub innej metody. Aby uzyskać więcej informacji na ten temat, ostatnio pojawiło się kolejne pytanie .

Możesz skrócić to wszystko do jednego polecenia, które połączy się, wyeksportuj wyświetlacz w linii i uruchom aplikację w sposób, który nie zamknie go po śmierci sesji ssh:

ssh tim "DISPLAY=:0 nohup firefox"

Powiedział, No DISPLAY: this may not be what you want.kiedy go wypróbowałem (tak przy okazji, próbowałem od zera. '
PyRulez

1
@PyRulez Zwróć uwagę na „lub jakikolwiek zdalny wyświetlacz jest ponumerowany jako” w pierwszym wierszu. Jeśli nie jest to pierwszy serwer graficzny, może to być: 1 lub wyższy. Uruchom, waby zobaczyć, kto jest zalogowany i gdzie. To powie ci również numer WYŚWIETLACZA.
Oli

1
Jak to wyłączyć
akabhirav,

1
unset DISPLAY
Oli

7
czasami chcesz zrobić odwrotnie i uruchomić aplikację X lokalnie, po prostu połącz za pomocą -Y, a następnie uruchom swoją aplikacjęssh -Y <remoteip>
Postadelmaga
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.