Apple - How do I run a GUI app via SSH?

The Mac OS X native application do not use the X protocol for the rendering, but the Mac specific protocol. So you cannot use ssh X protocol forwarding as you could with a Linux workstation.

As you discovered, the reverse is not true, you can install an X server on Mac OS X and have the Linux program appear on your Mac.

What you can do is use either Mac own desktop sharing facility or install a VNC server. Then from your Linux box, you connect to your Mac through VNC instead of ssh.


So if I am not mistaken the the problem you have with VNC currently is that it is sharing the current Mac user's screen with apps open that you don't want to see on your other computer? Lion introduces the ability to screen share users that are logged in the background. Quoting the text from the link:

  • Enable Screen Sharing and set a VNC password.
  • Take note of your computer’s IP address.
  • Fire up a VNC client on another machine.
  • Connect to your computer’s IP address along with the password you set earlier.
  • You will see the Mac OS X login screen that appears when you first start the computer. If you log into the currently active user you will be controlling the computer’s screen. If you select a different user, you will be logged into that user’s desktop in the background. It will not affect what what is seen on the physical computer screen.

You will likely just need to create another user for sharing.


As Sylvian mentioned, you can't run your Mac apps and display them on Linux. The best you can do is VNC. You'll see the whole screen, not just one app.

Enable a VNC password in Screen Sharing Preferences:

Screen Sharing Preferences

You can then use any VNC client application on Linux.