Shellinabox – SSH terminal in a web browser

Mostly, we are using putty to connect your linux server. Shell In A Box implements a web server that can export arbitrary command line tools to a web based terminal emulator. This emulator is accessible to any JavaScript and CSS enabled web browser and does not require any additional browser plugins. Most typically, login shells would be exported this way:

shellinaboxd -s /:LOGIN

This command starts a web server at http://localhost:4200 that allows users to login with their username and password and to get access to their login shell.

All client-server communications are encrypted, if SSL/TLS certificates have been installed.


How to install Shellinabox tool?

You can download and install source file or use yum to install it.

Please make sure openssl is installed in your server. Use the following steps to install shellinabox in CentOS.

[root@gopal ~]#yum install shellinabox

Once the installation completed, you should browse your server ip address with 4200 port. For example,

Normally Root login is not working due to security reason.

Install it from source file.

[root@gopal ~]#wget

[root@gopal ~]#tar -zxvf shellinabox-2.14.tar.gz

[root@gopal ~]#cd shellinabox-2.14

[root@gopal ~]#./configure

[root@gopal ~]#make

[root@gopal ~]#make install


Shellinabox Examples:-



Attaches a web-enabled login shell to https://localhost:4200/. If the user connected without SSL, the session will automatically be promoted. Unless SSL certificates can be found in the current directory, the daemon will automatically generate suitable self-signed certificates. If the command was invoked by a non-root user, the daemon uses ssh instead of /bin/login for the session.

shellinaboxd -t

Attaches a web-enabled login shell to http://localhost:4200/ with SSL/TLS support disabled.

shellinaboxd -t -f beep.wav:/dev/null

Runs all services with the audible-bell permanently disabled.

shellinaboxd -s /

The terminal connects to a ssh session on

shellinaboxd -t -s /:AUTH:HOME:/bin/bash

Interactively request the user’s name and password prior to launching a Bourne shell. This command can be run by unprivileged users. But if doing so, it only allows this particular user to log in.

shellinaboxd -c certificates -g shellinaboxd

If the certificates directory exists and is writable by the shellinaboxd group, self-signed SSL certificates will be generated in this directory. Running this command as root allows any user on the system to log in at http://localhost:4200/. Sessions will automatically be promoted to SSL/TLS.

shellinaboxd -t -s /:LOGIN -s /who:nobody:nogroup:/:w

In addition to the login shell at http://localhost:4200, show a list of currently logged in users when accessing http://localhost:4200/who. This command must be run as root in order to be able to change to nobody:nogroup as requested by the service description.

shellinaboxd -t -s ‘/:root:root:/:wy60 -c /bin/login’

Instead of the standard ANSI/VT100 terminal, publish a Wyse 60 terminal. Again, this command should be run as root.

shellinaboxd –css white-on-black.css

Loads the white-on-black.css style sheet from the current directory and appends it to the built-in styles.css sheet. This causes the terminal to always render white text on a black background.

shellinaboxd –user-css Normal:+black-on-white.css,Reverse:-white-on-black.css

Allow the user to select whether they want text to be rendered normally or in reverse video. This command line option adds a new entry to the right-click context menu.