I've tried developing on a remote dedicated server via PuTTy, VM under Windows (VMWare and VirtualBox), and a native Linux OS. The native Linux OS destroys the other two options by far. I just couldn't handle the slight delay you get in a VM when it comes to the mouse, keyboard, etc. I just really didn't care for it.