Linux has excellent remote desktop features no other system I know of can compete with! This guide is intended to supply you with the knowledge that you need to get such a system going. In the following I assume host to be an environment variable set to the IP of the computer that you want to be able to log in at.
ssh X tunneling
ssh allows for easy setting of the DISPLAY variable and secure communication. It's all as easy as to start an ssh session with
ssh -X host(some of you might want to use -Y instead of -X)
xhost +hoston the client side and accept X forwarding on the server in /etc/ssh/sshd_config:
X11Forwarding yessshd obviously needs to be restarted after these changes:
/etc/init.d/sshd restart
VNC
VNC, Virtual Network Computing, is a solution that I recommend when the bandwidth from client to server is limited. Although VNC is widely used in the commercial area, it's "freely and publicly available". You can't expect to be able to watch videos with it, but it works fairly nice as long as you are doing "standard stuff". Office tasks are no problem, for example.
I have mad good experiences with tightvnc, which is a server-client-all-in-one package derived from RealVNC, "the original open-source cross-platform remote control solution". It has many nifty addons and is being activley developed.
Install it on both the server and the client. Start "vncserver" on surprise, surprise the server, pick a password and call vncviewer on the client:
vncviewer host:1
There are numerous interesting options for vncserver and vncviewer, such as fullscreen and x11cursor. Have a look at their man pages.
XDMCP
Although it's been there for ages, one of the interesting remote desktop tools remains XDMCP. You'll get a completely new screen (vt 8 for example) with host's loginmanager. Thus, you need a loginmanager on the server: xdm, kdm and gdm are known to work quite well. If you decide to go for xdm, add a line in /etc/X11/xdm/Xaccess with the IP of the computer that you want to allow for remote login:
192.168.0.3You can even accept whole subnets with *:
192.168.2.*Warning: Don't ever add a line such as "*", except when you have good reasons to do so! In /etc/X11/xdm/xdm-config, comment out the line
DisplayManager.requestPort: 0by adding an exclamation mark at the beginning of the line:
! DisplayManager.requestPort: 0Restart xdm, then. On the client, you should now be able to see host's login:
/usr/X11R6/bin/X -query host :1
The benefits of this method are that you can use the computer just as you could when you would be sitting in front of its own monitor. It causes a lot of network traffic and is not encrypted, though, thus not suitable for internet remote access. Yet, it's ideal in LAN.
The fastest Method of using a Remote Desktop at the moment is NX Protocol from NoMachine. You can work fluently even with small-bandwidth connections. I use the open source implementation of the server (http://freenx.berlios.de/) and the client available from NoMachine.
The last big advantage of this system is the native ssh use. You don't have to open an extra port and it uses strong encryption.

That sounds promising.
Does it handle sound and video well?
