How to graphically interface with a headless server?

I have a ubuntu development server at work. It is an old rack server that is located somewhere in the company's dungeon, where nobody ever goes. The only way it can work is as a so-called headless server (i.e. with no monitor/keyboard connected and only accepting network connections).

Obviously, if you just need terminal access ssh is more than enough. I, however, would also like to connect to the graphical interface from time to time. At the moment I am using the built in VNC functionality but I am pretty sure this is neither the most efficient nor the most secure way of approaching this issue.

I have done a bit of research on the issue but failed to come to any definite conclusions. I read about trying to forward the X environment over ssh, which would at least solve my security concerns. Can anyone share their experiences in setting this up? Is there any other way that might be worth looking at?

I almost exclusively connect to this server from a Windows machine. I don't know if that might be a problem for some of the methods suggested.


Yes, X forwarding over ssh is a beautiful thing indeed. It allows you to use graphical applications on an app by app basis and have windows handled by your own desktop environment. You do not even need a desktop environment installed on the server.

You do need to set up some authentication things for it to work though. I believe you need xauth for that.

It's SO much faster than VNC as well. VNC was always rather laggy in my experience.

Edit: I have no experience using this method via Windows, but I found this tutorial for you if you're interested.


You could use freenx instead of vnc. Freenx transmits x-commands (with caching) instead of bitmaps.


Xming and XDMCP is a brillant option.

Edit:

Xming is a x-server for windows, which is based on Cygwin and has the ability to share the clipboard and implements different desktop layouts as well.

XDMCP is a simple and - important - unencrypted protocol (don't use it over the internet) to connect a X-displaymanager and a x-server.