Remote x-server with ssh -X

Solution 1:

I assume that what you are trying to do is start a complete remote Gnome session displaying on your local machine. This fails because you already have a local session manager controlling your X server display.

Your options are:

  1. Simply start individual remote applications using ssh -X [email protected] xclock

  2. Assuming XDMCP is enabled on the remote machine...

    2a. Use Xnest -query 192.168.1.107 -geometry 1024x768 :1 to start a remote login session in a local window.

    2b. Use Xephyr :1 -screen 1024x768 -query 192.168.1.107 which is a better X server than Xnest

  3. Also assuming XDMCP on the remote machine, configure your local machine to use the XDMCP chooser instead of the standard greeter on startup.

Enabling XDMCP is simply a case of putting

[xdmcp]
Enable=true

in /etc/gdm/custom.conf and restarting gdm or rebooting (assuming you are running gdm).

If you only intend to run a few applications remotely, then option 1 is simplest and continues to use SSH encrypted traffic, which none of the others do (so they are best only used on a trusted local network).

If you need to so something more complicated, then 2b (Xephyr) is may be better, but I've usually found just using ssh -X ... & for multiple remote applications to be adequate.

If you are doing everything remotely, i.e. the local machine is just a display server and doesn't do anything itself, then you need to look into using option 3, starting the XDMCP chooser instead of the standard login.


PS: As noted in the comments, both Xnest and Xephyr are applications which handle the X server protocol and put the entire session into a window. Xnest uses the functions provided by the local X server while Xephyr handles much more of the server protocol itself so is more robust. They may not be installed by default because the average user wouldn't use them.


PPS: After a little thought it's obvious how to encrypt a Xephyr or Xnest session...

ssh -X [email protected] Xephyr :1 -query localhost -screen 1280x1024