¿Cómo ejecuto una aplicación GUI a través de SSH?


10

Estoy acostumbrado a trabajar en Unix / Linux y recientemente me mudé a Mac. En solía poder hacer esto:

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

Instalé X11 desde maxports y puedo hacer lo mismo desde mi mac. Si intento lo contrario al enviar ssh a mi Mac desde Linux, solo puedo ejecutar ciertas aplicaciones:

  • /usr/X11/bin/xclock funciona bien
  • Algo así como /Applications/Preview.app/Contents/MacOS/Previewabre la GUI en la Mac.

    Parece que esto no es posible en una Mac? Si no es así, ¿cómo ejecuto una aplicación de forma remota (en una Mac) con una pantalla local (Linux)? ¿Necesito alguna aplicación de terceros?

Actualización: para ser más precisos: tengo sinergia y uso Mac para la codificación. En mi PC Linux, me gustaría ver la pantalla de otra aplicación (GUI) de Mac. Por lo tanto, las aplicaciones de 'compartir pantalla en vivo' como VNC no funcionarán.

Por ejemplo, estoy trabajando en mi Mac en la aplicación A (por ejemplo, Word) y quiero ver la salida de Excel (ejecutándose en Mac) en mi PC Linux a mi lado. (Simulando una pantalla dual a través de la red). Funcionó bien en Linux, esperando una solución para Mac.


Si no hay una solución a través de SSH, también estaría interesado en eso. El problema es que quiero ejecutar la pantalla de una aplicación local en una PC a través de la red a mi lado, como solía hacer con Linux.
Derick Schoonbee

¿Puedo preguntar por qué quieres evitar VNC? Problemas de retraso de red?
Nicholas Smith

Actualmente estoy trabajando en Mac, por lo tanto la pantalla está "ocupada". Quiero ejecutar otra aplicación en la Mac con el resultado que se muestra en la PC junto a mí. Como hice con Linux. Esperando ver una solución en mac.
Derick Schoonbee

Por cierto, no tienes que instalar X11 mediante macports ... X11 viene con OS X.
Yuji

Ah, ja, ¿entonces su objeción a VNC no se debe a ningún problema de VNC, sino a las limitaciones de la pantalla?
Nicholas Smith

Respuestas:


9

Entonces, si no me equivoco, el problema que tiene actualmente con VNC es que está compartiendo la pantalla del usuario actual de Mac con aplicaciones abiertas que no desea ver en su otra computadora. Lion presenta la capacidad de compartir usuarios de pantalla que están registrados en segundo plano . Citando el texto del enlace:

  • Habilite Compartir pantalla y establezca una contraseña de VNC.
  • Tome nota de la dirección IP de su computadora.
  • Encienda un cliente VNC en otra máquina.
  • Conéctese a la dirección IP de su computadora junto con la contraseña que configuró anteriormente.
  • Verá la pantalla de inicio de sesión de Mac OS X que aparece cuando inicia la computadora por primera vez. Si inicia sesión en el usuario actualmente activo, controlará la pantalla de la computadora. Si selecciona un usuario diferente, se iniciará sesión en el escritorio de ese usuario en segundo plano. No afectará lo que se ve en la pantalla de la computadora física.

Es probable que solo necesite crear otro usuario para compartir.


¡Genial, esto parece ser lo que quiero! Ahora tengo otra motivación para actualizarme a Lion . Probaré pronto y probablemente acepte esto como la respuesta. ¡Gracias!
Derick Schoonbee

Maldición, acabo de actualizar y obtengo la pantalla de inicio de sesión a través de VNC. Pero no quiere tomar mi teclado acariciado. Por lo tanto, no puedo iniciar sesión :(
Derick Schoonbee

Eso es muy extraño: ¿qué cliente VNC está utilizando?
cftarnas

17

La aplicación nativa de Mac OS X no utiliza el protocolo X para la representación, sino el protocolo específico de Mac. Por lo tanto, no puede utilizar el reenvío de protocolo ssh X como lo haría con una estación de trabajo Linux.

Como descubrió, lo contrario no es cierto, puede instalar un servidor X en Mac OS X y hacer que el programa Linux aparezca en su Mac.

Lo que puede hacer es usar la instalación de uso compartido de escritorio de Mac o instalar un servidor VNC. Luego, desde su caja de Linux, se conecta a su Mac a través de VNC en lugar de ssh.


Gracias por la información. Lo que quiero saber si hay alguna funcionalidad similar que pueda usar en la Mac. Por ejemplo, ¿puedo usar la función de uso compartido de escritorio de linux1 mientras estoy trabajando / conectado en mi Mac?
Derick Schoonbee

Sí, puede ejecutar un servidor VNC en Linux y conectarlo desde Mac con un cliente VNC (hay algunos clientes VNC gratuitos en Mac y un servidor VNC gratuito en Linux).
Sylvain Defresne

Hmm ... VNC no lo corta: estoy trabajando en mi Mac en la aplicación A (por ejemplo, Word) y quiero ver la salida de Excel (ejecutándose en Mac) en la PC Linux a mi lado.
Derick Schoonbee

Como Sylvain explicó, esto no es posible en Mac. La arquitectura subyacente del sistema operativo no permite este tipo de uso.
Samuel Mikel Bowles

3
Vea mi respuesta, pero con Lion es posible si usa un usuario diferente en la Mac para la sesión de VNC.
cftarnas

7

Como Sylvian mencionó, no puede ejecutar sus aplicaciones Mac y mostrarlas en Linux. Lo mejor que puedes hacer es VNC. Verá toda la pantalla, no solo una aplicación.

Habilite una contraseña de VNC en Preferencias de uso compartido de pantalla:

Preferencias para compartir pantalla

Luego puede usar cualquier aplicación de cliente VNC en Linux.


0

No tienes suerte, pero ScreenRecycler te acercará lo más posible. Se ejecuta sobre VNC pero convence a OS X de que la conexión VNC es en realidad un monitor separado, debería permitirle acercarse a lo que necesita. Lo he usado, es bastante bueno, hay una prueba gratuita y luego es bastante barato. Dejé de usarlo simplemente porque estaba en una red deficiente y había demasiada latencia a menos que conectara directamente las dos.


0

Se vuelve un poco creativo, pero también puede ejecutar una aplicación Java usando VNC que tiene un servidor http, o en mi caso usa un bucle para buscar un archivo y crear ese archivo usando SSH.

Aquí está mi aplicación Java.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.