Shell In A Box is a web-based terminal emulator, which can run as a web-based SSH client. It comes with its own web server (shellinaboxd) which exports a command line shell to a web-based terminal emulator via AJAX interface. Shell In a Box only needs JavaScript/CSS support from a web browser, and does not require any additional browser plugin.
To install shellinabox on Debian, Ubuntu or Linux Mint:
$ sudo apt-get install openssl shellinabox
To install shellinabox on Fedora:
$ sudo yum install openssl shellinabox
To install shellinabox on CentOS or RHEL, first enable EPEL repository, and then run:
$ sudo yum install openssl shellinabox
Configure Shellinaboxd Web Server
By default shellinaboxd web server listens on 4200 TCP port on localhost. You must change the default port to 443 for HTTPS. For that, modify shellinabox configuration as follows.
Configure shellinaboxd:
$ sudo vi /etc/default/shellinabox
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=443
# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:192.168.1.7"
# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:192.168.1.7 --localhost-only"
Configure shellinaboxd On Fedora, CentOS or RHEL:
$ sudo vi /etc/sysconfig/shellinaboxd
# TCP port that shellinboxd's webserver listens on
PORT=443
# specify the IP address of a destination SSH server
OPTS="-s /:SSH:192.168.1.7"
# if you want to restrict access to shellinaboxd from localhost only
OPTS="-s /:SSH:192.168.1.7 --localhost-only"
Provision a Self-Signed Certificate
During the installation of Shell In A Box, shellinaboxd attempts to create a new self-signed certificate (certificate.pem) by using /usr/bin/openssl if no suitable certificate is found on your Linux. The created certificate is then placed in /var/lib/shellinabox.
If no certificate is found in the directory for some reason, you can create one yourself as follows.
$ su (change to the root)
# cd /var/lib/shellinabox # openssl genrsa -des3 -out server.key 1024 # openssl req -new -key server.key -out server.csr # cp server.key server.key.org # openssl rsa -in server.key.org -out server.key # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # cat server.crt server.key > certificate.pem
Run Shellinaboxd Web Server
On Debian, Ubuntu or Linux Mint:
$ sudo service shellinabox start to the above format
On Fedora, CentOS or RHEL:
$ sudo systemctl enable shellinaboxd.service
$ sudo systemctl start shellinaboxd.service
To verify if shellinaboxd is running:
$ sudo netstat -nap | grep shellinabox
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4787/shellinaboxd
Now open up your web browser, and navigate to https://<IP_address_of_SSH_server>. You should be able to see a web-based SSH console, and log in to the remote SSH server via web browser interface.