I have an old machine that I'm going to retire and turn into an FTP/HFS file server. It's running Ubuntu. I'll be placing it out of reach so I was wondering what the best solution for remote desktop from my Windows 7 and Ubuntu machines to my new(old) Ubuntu file server for maintenance.
Must have a windows and ubuntu client so I can admin the machine from anywhere.
I scanned quickly and didn't see anyone answer your question.
So here are the options in increasing levels of badness/complexity.
1) Don't remote desktop. Use SSH instead to establish a secure-shell (command-line) into your server. You can use the (OpenSSH) ssh client in your Ubuntu desktop to connect to your server, and there are many free clients for Windows (Putty is common, I prefer OpenSSH on Cygwin). You will need to run the SSH server (sshd) on you server.
As a bonus, you can add the -X option to ssh (ssh X11 tunneling) when using your Linux desktop and export graphical applications to your desktop.
This is the option I would use, but I'm happy with the command-line (in fact I prefer it).
There are SSH clients for just about any platform you choose - I have one on my Android phone for example.
2) Do the above, but for the Windows client throw in an X server (there's a free one in Cygwin or there are good commercial options like eXceed). This will allow you (with a little configuration) to do the equivalent of the -X option on your Windows client.
For those not in the know, most GUIs on Linux (and most other Unix-like operating systems) sit on top of a relatively ancient (although constantly updated) stack of software called X-Windows. X-Windows is interesting in a network environment because it allows you to display applications running on one machine, on the desktop of another. Your graphical desktop always runs a piece of software called an X server of which there are many implementations (on most Linux distros X.org is the default/only option). Graphical applications (referred somewhat confusingly as X clients) talk to this X server to display pictures on your screen. This communication is abstracted so that it can happen over a network as well as locally. In the bad old days you used to telnet into the remote machine and set the DISPLAY environment variable appropriately which resulted in insecure communication for various reasons (not least of all encryption) was insecure. Now, with SSH, this traffic can be tunneled securely over your SSH login session, simply and automatically by enabling the option (-X, -Y or whatever is appropriate for your client).
You can also do some cool tricks with things like Xnest to export an entire desktop rather than one application.
3) Use VNC. There are X servers like Xvnc which replace the X server with one which outputs to VNC rather than to a graphics card. You install Xvnc on your server and then you can then connect to it with any VNC client.