Shell remote access through Internet
Sometimes we want to have our embedded system plug somewhere with Internet access and connect to it from a remote place without having to configure servers/box/NAT/proxy/what you want tricky. This page will explain how to do this with Shell In a Box and serveo.net
Shell In A Box
- First we will install this small tool on our system. It is a small web server that allow client to connect to our system with Internet browser, making them think they are using a SSH connection. For more informations: https://code.google.com/archive/p/shellinabox/
- shellinabox tool is packaged in Buildroot, so all we hav to do is to select it, rebuild our rootfs and reflash it on our system:
$ make menuconfig
... Target packages ---> ... Networking applications ---> ... [*] shellinabox ...
$ make $ cp buildroot/output/images/xxx-rootfs.xxx /tftpboot
BIOS> run update_rootfs
- then reboot your system and login as usual.
- to quickly test shellinabox:
# ip addr show eth0 | grep inet (to get IP @ of your board) # shellinabox
Then from a browser on your host you can access https://192.168.1.5:4200
- Previous instructions gave us a way to access our system from the local network. We will now see how to deal with the Internet.
- serveo.net is a free service (for personnal use) that allow you to create SSH tunnels with WWW access without installing anything on your client (it should at least have a SSH client installed, like any Armadeus SOM).
- First check you system has Internet access:
# ping google.com
- If not, this tutorial will end up now for you ;-).
- Then ask serveo.net to create a tunnel with a permanent www @ with following command:
# ssh -R -L localhost:4200 firstname.lastname@example.org
- Testing: now from a PC outside your local network, you can open a browser and point it to : https://toto.serveo.net
- Tada !