Programming and writing about it.

echo $RANDOM

Tag: raspberrypi

Web based SSH access to your Raspberry Pi

See here for Fedora instructions.

Using wssh, you can setup a web based SSH access mechanism to your Raspberry Pi. This looks more attractive when you expose your Pi using a public IP address/hostname using a service like Pagekite. Let us see how (I am assuming your Raspberry Pi is running raspbian).

Installing wssh

wssh has a bunch of dependencies which you can install with a mix of apt-get and easy_install. Note that we will be using the in built wssh server, ‘wsshd’ which uses Flask for the Web application, hence we install Flask as well.

Install the dependencies:

pi@raspberrypi ~ $ sudo apt-get install python-dev libevent-dev
pi@raspberrypi ~ $ sudo easy_install gevent flask paramiko gevent-websocket wssh

It will take some time for these to install and once they are completed, you should be able to start the wssh server. If you get a message like that, your server is up and running and you can visit the URL in your browser.

pi@raspberrypi ~ $ wsshd 
wsshd/0.1.0 running on 0.0.0.0:5000

You will be greeted with a login screen such as the one below:

Login Screen

Note that this server is running on your Raspberry Pi, and hence localhost means the Pi itself. (You can ofcourse use any other computer’s hostname or IP address on your network). If you have been logged in succesfully, you should see the shell:

Shell

And then you can do all you wish to right there in your browser.

Public facing hostname

Once you make the server reachable at a public facing hostname, things get really interesting since you can now access your Pi from anywhere in the world, literally. A service like Pagekite.net can help achieve that. Once you have installed Pagekite and signed up using your email address, you can start ‘wsshd’ as a background process and tell Pagekite to make the 5000 port available as your chosen kite name:

$ wsshd &
$ pagekite.py 5000 yourpi.pagekite.me

And you should have your SSH login screen at your chosen kitename: http://yourpi.pagekite.me in this case. And ofcourse, you can use the instructions here to set this up for any of your other computers running Linux.

Advertisement

Making your RaspberryPi accessible to the World

Problem: Public facing hostname/IP address for your Raspberry Pi.

Solutions: Several solutions exist:

  • PageKite: The one I am most familiar with. Coded in Python. Since the Linux on your Raspberry Pi already has Python installed, its simple to get it working. Check it out
  • Localtunnel: I used it once. Doesn’t involve sign up from what I remember. Ruby, so you will have to install it. Check it out
  • showoff.io: Haven’t used this. Ruby again. Check it out

Both, PageKite and showoff.io have one month free trials and is paid beyond that. localtunnel is free and perhaps may not have all the features that the other two has.

Also see: Raspberry Pi Forum topic