The method I'm talking about is called X-Forwarding / X11-Forwarding. I'm not going into much detail about what it is and how it works, but to cut it short: it forwards an application's GUI over the network from a server to a client (in this case, your Chromebook). That means you only have to install the application on your server, but you are still able to see and control it on your client.
Let's jump into configuration. I'm running Ubuntu Server 11.10. Assuming a plain install, you need to do the following steps:
- configure server
- set "X11Forwarding yes" in your /etc/ssh/sshd_config
- restart ssh using sudo service ssh restart
- set "ForwardX11 yes" in your /etc/ssh/ssh_config (some applications (read, most written in Java) need "ForwardX11Trusted yes" set in /etc/ssh/ssh_config too)
- initiate SSH session from Chromebook
- ssh -Y [email protected]
- (sudo apt-get install eclipse-jdt)
sudo apt-get install xauth
Important note: usually you would activate X-Forwarding on the client using ssh -X [email protected], but for me, it didn't work that way. I guess it's due to Chrome OS and some restrictions. However, be aware that using the -Y parameter might be more insecure than setting everything up the proper way and using -X instead, as someone pointed out in this discussion.
Obviously, there are some disadvantages too. For example, there's no window manager for X11 available in Chrome OS, so every window is being displayed in fullscreen. Without any controls. I hear your laughter, thinking "Ha, no problem! There's Alt+F4!"... Look at your keyboard and think again. There's no F4 on a Chromebook's keyboard. :) You have to hope for every application to display a close button for you. If it doesn't you're still able to switch back to your SSH session and kill the application the hard way (Ctrl+C or killall applicationName).
Another annoying aspect you might face is performance. If your network connection is slow, you might try starting your SSH session using ssh -YC [email protected], which compresses all traffic for you. But keep in mind that this could slow down your Chromebook's slow hardware.
And now that you have a server set up, I recommend you to read this article, called "Tips for Remote Unix Work (SSH, screen, and VNC)". Moreover, shellinabox is worth a look. You wouldn't even need to switch your Chromebook into developer mode in order to access your server via SSH. However, you can't use shellinabox for X-Forwarding or most of the tips shown in the previously mentioned article.
Now, go and look for some old hardware you can set up your server on! ;) And don't forget to ask questions in the comments or on Google+...
Want to read more about this topic? Check out the other posts of this series:
- Part 1: Chromebook
- Part 2: Cloud
- Part 4: Ubuntu