Skip to main content

How to access ssh terminal in web browser on Linux

How to access ssh terminal in web browser on linux

Running “everything” in a web browser used to be a bold statement. However, due to the powerful HTML5/JavaScript stack, a web browser increasingly becomes a dominant application delivery platform.

In this tutorial, we will looking that, how to access an SSH terminal in a web browser on Linux. Web-based SSH is useful when the firewall you are behind is so restrictive that only HTTP(s) traffic can get through. Or in case when we don't have ssh access client tools(putty, ssh-client)


Shell In A Box (or shellinabox) 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.

 #############
#####Install shellinabox on Linux#################

To install shellinabox on Fedora:
 

[root@myserver ~]#  yum install openssl shellinabox

To install on Centos/RHEL:    # we need enable epel repository first.

[root@myserver ~]#  yum install openssl shellinabox

To install shellinabox on Debian, Ubuntu or Linux Mint:

[root@myserver ~]#  apt-get install openssl shellinabox

Configure Shellinabox Web Server:
By default shellinabox web server listens on 4200 TCP port on localhost. Now here i will change  the default port to 443 for HTTPS. For that, modify shellinabox configuration as follows.


Configure shellinabox On Fedora/CentOS/RHEL:

[root@myserver ~]# vim /etc/sysconfig/shellinaboxd

PORT=443            ----------------> default port is 4200

#specify the IP address of ssh server


OPTS="-s /:SSH:192.168.50.144"      ---------->my ssh server ip address:

save and exit now:

Configure shellinaboxd On Debian, Ubuntu or Linux Mint:

[root@myserver ~]# vim  /etc/default/shellinabox

SHELLINABOX_PORT=443

SHELLINABOX_ARGS="--o-beep -s /:SSH:192.168.50.144"

save and exit now:

Now because we are using 443 port number so now we need a self signed certificate, So here we need to create self signed certificate. We can create it as follows:

# cd /var/lib/shellinabox
# openssl genrsa -des3 -out myserver.key 1024
# openssl req -new -key myserver.key -out myserver.csr
# cp myserver.key myserver.key.org
# openssl rsa -in myserver.key.org -out myserver.key
# openssl x509 -req -days 365 -in myserver.csr -signkey myserver.key -out myserver.crt
# cat myserver.crt myserver.key > certificate.pem


Now start the service, There is same method to start service on each flavor of linux:

[root@myserver ~]# service shellinabox start  ---> On Ubuntu,debian,Linux Mint:


[root@myserver ~]# service shellinaboxd on  ---> On Fedora,RHEL,CentOS

Now verify the port number of shellinabox


[root@myserver ~]# netstat  -tupnl | grep shellinabox


Now open up your web browser, and navigate to https://. You should be able to see a web-based SSH console, and log in to the remote SSH server via web browser interface.











 

Comments

Post a Comment

Popular posts from this blog

Docker Container Management from Cockpit

Cockpit can manage containers via docker. This functionality is present in the Cockpit docker package. Cockpit communicates with docker via its API via the /var/run/docker.sock unix socket. The docker API is root equivalent, and on a properly configured system, only root can access the docker API. If the currently logged in user is not root then Cockpit will try to escalate the user’s privileges via Polkit or sudo before connecting to the socket. Alternatively, we can create a docker Unix group. Anyone in that docker group can then access the docker API, and gain root privileges on the system. [root@rhel8 ~] #  yum install cockpit-docker    -y  Once the package installed then "containers" section would be added in the dashboard and we can manage the containers and images from the console. We can search or pull an image from docker hub just by searching with the keyword like nginx centos.   Once the Image download...

Remote Systems Management With Cockpit

The cockpit is a Red Hat Enterprise Linux web-based interface designed for managing and monitoring your local system, as well as Linux servers located in your network environment. In RHEL 8 Cockpit is the default installation candidate we can just start the service and then can start the management of machines. For RHEL7 or Fedora based machines we can follow steps to install and configure the cockpit.  Following are the few features of cockpit.  Managing services Managing user accounts Managing and monitoring system services Configuring network interfaces and firewall Reviewing system logs Managing virtual machines Creating diagnostic reports Setting kernel dump configuration Configuring SELinux Updating software Managing system subscriptions Installation of cockpit package.  [root@rhel8 ~] #  dnf   install cockpit cockpit-dashboard  -y  We need to enable the socket.  [root@rhel8 ~] #  systemctl enable --n...

Add The Group Information IN Yum Repository in simple Two steps

= Yum groups and repositories = Yum supports the group commands   * grouplist   * groupinfo   * groupinstall   * groupremove   * groupupdate Groups are read from the "group" xml metadata that is optionally available from each repository. If yum has no repositories which support groups then none of  the group operations will work.  #yum grouplist    This will list the installed and available groups for your system in two    separate lists. If you pass the optional 'hidden' argument then all of     the groups which are set to 'no' in the group xml tag.   yum groupinfo groupname     This will give you detailed information for each group including:   description, mandatory, default and optional packages.       #yum groupinstall groupname      #yum groupupdate groupname   Despite their differing names both of these commands perform the same   func...