tech, tunes, and other stuff

Running Remote X Apps on the OSX Desktop

I recently had need to get an server’s console application up and running on my screen so I could do what I needed to do. It had been a while since I had done this, and the first time on OSX. I’m running OSX 10.9 Mavericks, and Apple has not shipped an X server with OSX since 10.5 Leopard. So what does one do given this situation? Here is the list of things you want to do:

On the remote server:

  • Set up your display environment variable for X, where 111.222.333.444 is the IP of your OSX computer. Its probably a good idea to append this to your .bashrc command shell initialization file.
    export display=111.222.333.444:0.0
  • Create an .Xauthority file by issuing a similar command as seen below. Substitute each of the Xs with a hexidecimal digit. The entire command argument should be exactly 32 bytes.:
    xauth add 111.222.333.444:0 . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

On your local OSX computer:

  • Download and install the open source X server, XQuartz.
  • Open a tcp port range in your router: 6000-6063
  • Go into System Preferences > Security & Privacy > Firewall and allow XQuartz to accept incoming connections
  • Run an xterm, and inside the xterm issue the command: xhost +
  • Connect to the remore server using ssh using the -X option:
    ssh -X 555.666.777.888 -l yourlogin

After you ssh into the remote server you should be ready to run your remote X app and have it display on your local OSX computer’s desktop. Simply run the application you want from the command line. For example:
xclock &