Jak uruchomić aplikację GUI przez SSH?

10

Przyzwyczaiłem się do pracy w systemie Unix / Linux, a ostatnio przeniosłem się na Mac. W kiedyś było to możliwe:

derick@linux1:~$ ssh -X linux2
derick@linux2's password:
derick@linux2:~$ xclock

Zainstalowałem X11 z maxports i mogę zrobić to samo z mojego Maca. Jeśli spróbuję odwrotnie, ssh-sing na moim komputerze Mac z systemu Linux, mogę uruchomić tylko niektóre aplikacje:

  • /usr/X11/bin/xclock działa w porządku
  • Coś jak /Applications/Preview.app/Contents/MacOS/Previewotwiera GUI na komputerze Mac.

    Wydaje się, że nie jest to możliwe na komputerze Mac? Jeśli nie, w jaki sposób mogę uruchomić aplikację zdalnie (na komputerze Mac) z lokalnym wyświetlaczem (Linux)? Czy potrzebuję aplikacji innej firmy?

Aktualizacja: Aby być bardziej precyzyjnym: mam synergię i używam Maca do kodowania. Na moim komputerze z systemem Linux chciałbym zobaczyć ekran innej aplikacji (GUI) z komputera Mac. Dlatego aplikacje do udostępniania ekranu na żywo, takie jak VNC, nie będą działać.

Na przykład pracuję na komputerze Mac w aplikacji A (powiedzmy Word) i chcę zobaczyć wyniki programu Excel (działającego na komputerze Mac) na moim komputerze z systemem Linux obok mnie. (Symulacja podwójnego ekranu przez sieć). Działa ładnie na Linuksie, mając nadzieję na rozwiązanie dla Mac.

Derick Schoonbee
źródło
Jeśli nie ma rozwiązania za pośrednictwem SSH, również mnie to interesuje. Problem polega na tym, że chcę uruchomić wyświetlanie aplikacji lokalnej na komputerze za pośrednictwem sieci obok mnie, tak jak to robiłem z Linuksem.
Derick Schoonbee
Czy mogę zapytać, dlaczego chcesz uniknąć VNC? Problemy z opóźnieniem sieci?
Nicholas Smith
Obecnie pracuję na komputerze Mac, więc ekran jest „zajęty”. Chcę uruchomić inną aplikację na komputerze Mac z wyjściem wyświetlanym na komputerze obok mnie. Tak jak zrobiłem z linuksem. Mam nadzieję zobaczyć rozwiązanie na Macu.
Derick Schoonbee,
Nawiasem mówiąc, nie musisz instalować X11 przez Macports ... X11 jest dostarczany z OS X.
Yuji
Ach hah, więc twój sprzeciw wobec VNC nie wynika z żadnych problemów z VNC, ale z powodu ograniczeń ekranowych?
Nicholas Smith

Odpowiedzi:

9

Więc jeśli się nie mylę, problemem, który masz obecnie w VNC, jest to, że dzieli ekran bieżącego użytkownika komputera Mac z otwartymi aplikacjami, których nie chcesz widzieć na innym komputerze? Lion wprowadza możliwość udostępniania ekranu użytkownikom zalogowanym w tle . Cytując tekst z linku:

  • Włącz udostępnianie ekranu i ustaw hasło VNC.
  • Zanotuj adres IP komputera.
  • Uruchom klienta VNC na innym komputerze.
  • Połącz się z adresem IP komputera wraz z ustawionym wcześniej hasłem.
  • Zobaczysz ekran logowania do Mac OS X, który pojawi się przy pierwszym uruchomieniu komputera. Jeśli zalogujesz się do aktualnie aktywnego użytkownika, będziesz kontrolować ekran komputera. Jeśli wybierzesz innego użytkownika, zostaniesz zalogowany na pulpicie tego użytkownika w tle. Nie wpłynie to na to, co widać na fizycznym ekranie komputera.

Najprawdopodobniej będziesz musiał utworzyć innego użytkownika do udostępniania.

cftarnas
źródło
Świetnie, wydaje się, że tego właśnie chcę! Teraz mam kolejną motywację do przejścia na Lion . Niedługo przetestuję i prawdopodobnie zaakceptuję to jako odpowiedź. Dzięki!
Derick Schoonbee,
Cholera, właśnie zaktualizowałem i otrzymuję ekran logowania przez VNC. Ale nie chce mi się głaskać klawiatury. Dlatego nie mogę się zalogować :(
Derick Schoonbee,
To bardzo dziwne - jakiego klienta VNC używasz?
cftarnas
17

Natywna aplikacja Mac OS X nie używa protokołu X do renderowania, ale protokół specyficzny dla komputerów Mac. Nie można więc używać przesyłania dalej protokołu ssh X, tak jak na stacji roboczej z systemem Linux.

Jak odkryłeś, odwrotna sytuacja nie jest prawdą, możesz zainstalować serwer X w systemie Mac OS X i wyświetlać program Linux na komputerze Mac.

Możesz skorzystać z własnego narzędzia do udostępniania pulpitu Maca lub zainstalować serwer VNC. Następnie z twojego Linuxa łączysz się z komputerem Mac przez VNC zamiast ssh.

Sylvain Defresne
źródło
Dzięki za informacje. Co chcę wiedzieć, jeśli istnieje podobna funkcjonalność, której mogę używać na komputerze Mac. Na przykład, czy mogę korzystać z funkcji współdzielenia pulpitu z Linuksa, gdy pracuję / loguję się na moim komputerze Mac?
Derick Schoonbee,
Tak, możesz uruchomić serwer VNC w systemie Linux i połączyć go z komputerem Mac za pomocą klienta VNC (istnieje jakiś wolny klient VNC na komputerze Mac i bezpłatny serwer VNC w systemie Linux).
Sylvain Defresne
Hmm .. VNC tego nie robi: pracuję na moim Macu w aplikacji A (powiedzmy Word) i chcę zobaczyć wyniki Excela (działającego na Macu) na komputerze z linuksem obok mnie.
Derick Schoonbee,
Jak wyjaśnił Sylvain, nie jest to możliwe na Macu. Podstawowa architektura systemu operacyjnego nie zezwala na tego typu użycie.
Samuel Mikel Bowles,
3
Zobacz moją odpowiedź, ale z Lionem jest to możliwe, jeśli używasz innego użytkownika na Macu do sesji VNC.
cftarnas
7

Jak wspomniał Sylvian, nie można uruchamiać aplikacji Mac i wyświetlać ich w systemie Linux. Najlepsze, co możesz zrobić, to VNC. Zobaczysz cały ekran, a nie tylko jedną aplikację.

Włącz hasło VNC w Preferencjach udostępniania ekranu:

Preferencje udostępniania ekranu

Następnie możesz użyć dowolnej aplikacji klienckiej VNC w systemie Linux.

bahamat
źródło
0

Trochę pecha, ale ScreenRecycler zbliży cię do siebie tak blisko, jak to możliwe. Działa z VNC, ale przekonuje OS X, że połączenie VNC jest w rzeczywistości osobnym monitorem, powinno pozwolić ci zbliżyć się do tego, czego potrzebujesz. Użyłem go, jest całkiem dobry, jest bezpłatny okres próbny, a następnie jest dość tani. Przestałem go używać tylko dlatego, że byłem w cholernej sieci i było zbyt wiele opóźnień, chyba że bezpośrednio łączyłem ich w sieć.

Nicholas Smith
źródło
0

Trochę kreatywny, ale możesz też uruchomić aplikację Java za pomocą VNC, która ma albo serwer HTTP, albo w moim przypadku używa pętli, aby wyszukać plik i utworzyć go za pomocą SSH.

Oto moja aplikacja Java.

Erik B.
źródło