How do I fix this problem on OS X and enable X11 forwarding with ssh command? How do I install XQuartz (X11.app) server on Apple OS X Mountain Lion or Mavericks or Yosemite?
You need to install XQuartz (X11.app) on OS X v10.8 or above to use ssh with x11 forwarding. The XQuartzproject is an open-source effort to develop a version of the X.Org X Window System that runs on OS X. This is Apple's version of the X server.
The latest version of Apple OS X Mountain Lion and Mavericks no longer ships with X11.app i.e. XQuartz server. You need to download and install the server before using ssh with X11 forwarding.
Can't load X11 after OS X Yosemite upgrade
You need to delete / remove existing XQuartz server and reinstall it again.
Step #1: Download and Install XQuartz server
Visit this page and download XQuarz server. Once downloaded the XQuarz package, install the server by double clicking the package icon in your Downloads folder. Please follow the instructions on-screen to complete the installations:
Step #2: ssh X11 forwarding syntax
A tunneling protocol is a network protocol which encapsulates a payload protocol, acting as a payload protocol. Reasons to tunnel include carrying a payload over an incompatible delivery network, or to provide a secure path through an untrusted network. SSH is frequently used to tunnel insecure traffic over the Internet in a secure way. Simply type the following command to use X over ssh:
ssh -X user@RemoteserverNameHere x-app-name-here &
ssh -X userName@Server-Ip-Address-Here x-window-app-name-here &
In this example, login to the Linux based nas01 server as a user called nixcraft:
$ ssh -X nixcraft@nas01
$ ssh -X nas01
You will see XQuartz server in the Dock i.e. a new XQuartz icon sits at the bottom of side of your screen as follows:
To test X11 by running xeyes or xclock or any another GUI application you wish. The syntax is as follows on your remote server:
$ app-name &
In this example, I am running xeyes on remote server:
Edit your ~/.ssh/config file and append the following line and you wouldn't need pass the -X option to ssh command:
Finally, you can run ssh in the background after running a GUI app as follows:
ssh user@server -f -X app-Name ssh nixcraft@nas01 -f -X gpass ssh nixcraft@nas01 -f -X xeyes