Then, i discovered GateOne – a full featured HTML5 based web terminal for SSH access.
Despite this tutorial is for the Raspberry Pi, this will work without much changes in any Debian based system, such as Ubuntu and others.
I thought about writing this tutorial after trying out Shell-in-a-Box, by following this great write up from Remi Bergsma. I didn’t want to rely on a daemon for the terminal, than lighttpd or nginx for the web stuff. Also, there were a few glitches with my setup that didn’t made things as straightforward as they should – probably due do customization for RaspBMC that i’m running.
Sometimes you can’t just SSH to your terminal. You have a firewall or a proxy in your way, so, an HTTPS session is always handy.
The installation is pretty straightforward. Get the file, uncompress it, enter the dir, and run the setup script. But first, we need setuptools as a pre-requisite:
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar zxvf setuptools-0.6c11.tar.gz cd setuptools-0.6c11 python setup.py build python setup.py install
Then, clone the source from Git repository, and run the installer:
git clone https://github.com/liftoff/GateOne.git cd GateOne sudo python setup.py install
On the first run, a configuration file must be created. So, we’ll run GateOne and, when finished, close the program with CTRL+C.
GateOne defaults to only allowing local connections, but we’ll need to be able to access it through our local network to make it usefull.
sudo nano /etc/gateone/conf.d/10server.conf
look for “origins” [you can search with CTRL+W], and add the Pi’s IP address to the list with the same sintax as the others. CTRL+O to save, CTRL+X to exit.
Restart the service,
sudo /etc/init.d/gateone restart
Go to the web browser on your local network and test: https://rpi-ip-address. Note the HTTPS on the address!
As a side note, this won’t work from the outside network.
If someone is interested in that, leave a comment. However, the best way to accomplish this is through a VPN.
Also, SSL certificate generation is out of scope for this article: this is just the basic howto.