- Shell In A Box – A Web-Based SSH Terminal to Access Linux via Browser
- Installing Shellinabox on Linux Systems
- Install Shellinabox on Debian, Ubuntu & Mint
- Install Shellinabox on RHEL, Fedora, Rocky & AlamLinux
- Configuring Shellinabox in Linux Systems
- Access Linux SSH Terminal via Web Browsers
- Run Linux from Web Browser with these 9 Websites
- JSLinux
- Copy.sh
- Webminal
- DistroTest
- CoCalc
- Geekflare Compiler
- WebVM
- JS/UNIX Terminal
- CB.VU
- Online Linux Terminal
- Online Linux Terminal (GNU Bash v4.4)
- How to give program Input?
- Keyboard Shortcuts
- Save Unixterm Project
- Share Unixterm Project
Shell In A Box – A Web-Based SSH Terminal to Access Linux via Browser
Shell In A Box (pronounced as shellinabox) is a web-based terminal emulator created by Markus Gutschke. It has a built-in web server that runs as a web-based SSH client on a specified port and prompts you to a web terminal emulator to access and control your Linux Server SSH Shell remotely using any AJAX/JavaScript and CSS-enabled browsers without the need for any additional browser plugins such as FireSSH.
In this tutorial, I describe how to install Shellinabox and access a remote SSH terminal using a modern web browser on any machine. Web-based SSH access to Linux servers is very useful when you are protected with a firewall and only HTTPS traffic can get through.
Installing Shellinabox on Linux Systems
By default, the Shellinabox tool is included on Debian-based Linux distributions through default repositories using the default package manager as shown.
Install Shellinabox on Debian, Ubuntu & Mint
$ sudo apt install openssl shellinabox
Install Shellinabox on RHEL, Fedora, Rocky & AlamLinux
On Red Hat-based distributions, you need to install it from the source using the following commands.
# yum install git openssl-devel pam-devel zlib-devel autoconf automake libtool # git clone https://github.com/shellinabox/shellinabox.git && cd shellinabox # autoreconf -i # ./configure && make
Configuring Shellinabox in Linux Systems
By default, shellinaboxd listens on TCP port 4200 on localhost. For security reasons, I change this default port to a random (i.e. 6175) to make it difficult for anyone to reach your SSH box.
Also, during installation, a new self-signed SSL certificate is automatically created under “/var/lib/shellinabox” to use HTTPS protocol.
$ sudo vi /etc/default/shellinabox OR $ sudo nano /etc/default/shellinabox
Make the configuration changes as shown below…
# Should shellinaboxd start automatically SHELLINABOX_DAEMON_START=1 # TCP port that shellinboxd's webserver listens on SHELLINABOX_PORT=6175 # Parameters that are managed by the system and usually should not need # changing: # SHELLINABOX_DATADIR=/var/lib/shellinabox # SHELLINABOX_USER=shellinabox # SHELLINABOX_GROUP=shellinabox # Any optional arguments (e.g. extra service definitions). Make sure # that that argument is quoted. # # Beeps are disabled because of reports of the VLC plugin crashing # Firefox on Linux/x86_64. SHELLINABOX_ARGS="--no-beep" # specify the IP address of an SSH server OPTS="-s /:SSH:192.168.0.140" # if you want to restrict access to shellinaboxd from localhost only OPTS="-s /:SSH:192.168.0.140 --localhost-only"
Once you’ve done with the configuration, you can restart and verify the shellinabox service by issuing the following commands.
$ sudo systemctl restart shellinabox $ sudo systemctl status shellinabox
Now let’s verify whether Shellinabox is running on port 6175 using the netstat command.
$ sudo netstat -nap | grep shellinabox
Make sure you secure your shellinabox on the firewall and open the 6175 port for a specific IP Address to access your Linux shell remotely.
------- On Debian, Ubuntu and Mint ------- $ sudo ufw allow 6175/tcp $ sudo ufw allow from 192.168.0.103 to any port 6175 ------- On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux ------- $ sudo firewall-cmd --zone=public --add-port=6175/tcp $ sudo firewall-cmd --zone=public --add-source=192.168.0.103/6175 --permanent
Access Linux SSH Terminal via Web Browsers
Now open up your web browser, and navigate to https://Your-IP-Adress:6175. You should be able to see a web-based SSH terminal. Log in using your username and password and you should be presented with your shell prompt.
You can right-click to use several features and actions, including changing the look and feel of your shell.
For more information, visit the official Shellinabox github page.
Run Linux from Web Browser with these 9 Websites
Invicti Web Application Security Scanner – the only solution that delivers automatic verification of vulnerabilities with Proof-Based Scanning™.
Well, I can understand if you are new and want to play around, learn or want a test drive. Or maybe just bored with Windows and MAC.
The following tools will help you launch Linux-based OS within a browser.
The good thing about that emulator is you don’t have to install anything on your PC. It works within your web browser as you are surfing any website.
JSLinux
JSLinux is fully functional Linux running entirely in a web browser, meaning if you have almost any modern web browser suddenly you can run a basic version of Linux on any computer.
This emulator is written in JavaScript and supported on Chrome, Firefox, Opera, and Internet Explorer. You can refer to the official technical notes about this fantastic emulator.
Copy.sh
Run Linux 2.6 from copy.sh. Boot time for Linux is less than one minute, and you may launch other following operating systems too.
- Windows 98
- Arch Linux
- KolibriOS
- Linux 2.6 and 3.18
- Windows 1.01
- FreeDOS
- OpenBSD
- Solar OS
Webminal
Webminal is GNU/Linux terminal and the best place to practice the Linux commands and interact with other users. To access the Webminal terminal, you need to register a free account with them.
Webminal has helped students from more than 125 countries that have practiced more than 1.5 million commands.
DistroTest
DistroTest allows you to test any operating system directly without installing any application or software. Use every function you want from the system to test installed programs, install and uninstall software, and format or delete the system files or hard disks with ease.
You are free to choose from various operations from the alphabet and the numbers you can see. Start running Linux from the Web Browser to test it. Not to mention, DistroTest hosts more than 350 operating systems.
CoCalc
CoCalc offers real-time, collaborative, and fully synchronized Linux Terminal in the browser. It will help you in maintaining software without installing it. You can leverage the benefit of using the same terminal so multiple users can open it. Additionally, it allows you to edit the shell script files and run them effortlessly.
CoCalc provides a side-chat that allows you to discuss the commands with others. In addition, automatic backup helps to keep the files safe. You can also copy or paste between the online terminal and your local PC.
CoCalc has a frame editor that supports script file editing with a terminal side by side. It includes many popular applications like Git, Emacs, GitHub, and VIM and supports programming shells such as R shell, IPython, and SageMath. It also supports programming languages and powerful compilers, including Python, Java, C, and C++ through GNU GCC or Ada, Clang, Haskell, Rust, Smalltalk, and more.
This Linux terminal is ideal for learning or teaching Linux. CoCalc’s servers enable everything to run remotely, and you don’t need to worry about complexities, handle setup or installation issues, or take risks of corrupting your files upon making minor mistakes. Moreover, you will always get snapshots of your files that you can restore and copy in case of file corruption or mismanagement to ensure you don’t lose anything.
Geekflare Compiler
Not exactly the entire OS but you can practice bash commands on Geekflare Bash Complier.
WebVM
You can use WebVM to run client-side Debian binaries right from your web browser. It is powered by the CheerpX virtualization engine.
The core components involve:
- A CheerpX execution engine,
- Xterm.js as the primary UI module,
- A Debian buster disk image with a few pre-installed packages.
This has no server-side components, and you would basically be accessing disk images held on a Content Delivery Network like Cloudflare. This approach essentially means many simultaneous users without any technical bottlenecks.
JS/UNIX Terminal
JS/UNIX is UNIX-like Operating System for web browsers written in JavaScript. It doesn’t require any plugin to open the terminal. You get a “guest” login to practice the commands.
CB.VU
CB.VU gives you FreeBSD 7.1 stable version.
If you are looking to build your career in Linux, then you may check out this online course by Jason Cannon.
Online Linux Terminal
We provide you an easy interface to Linux operating system CentOS 8 where you can play with all the Linux commands with a simple user privilege. Linux is a variant of Unix liked operating systems. Following is a list of few important Linux/Unix commands. cat — Display File Contents cd — Changes Directory to dirname chgrp — Change file group chmod — Changing Permissions cp — Copy source file into destination file — Determine file type find — Find files grep — Search files for regular expressions. head — Display first few lines of a file ln — Create softlink on oldname ls — Display information about file type. mkdir — Create a new directory dirname more — Display data in paginated form. mv — Move (Rename) a oldname to newname. pwd — Print current working directory. rm — Remove (Delete) filename rmdir — Delete an existing directory provided it is empty. tail — Prints last few lines in a file. touch — Update access and modification time of a file.
Online Linux Terminal (GNU Bash v4.4)
Online Linux Terminal (GNU Bash v4.4) helps you to Edit, Run and Share your Unixterm Code directly from your browser. This development environment provides you version GNU Bash v4.4.
How to give program Input?
The latest version of Coding Ground allows to provide program input at run time from the termnial window exactly the same way as you run your program at your own computer. So simply run a program and provide your program input (if any) from the terminal window available in the right side.
Keyboard Shortcuts
Shortcut | Description |
---|---|
⌘ + Enter | Run the program |
⌘ + S | Save Project (Login Required) |
⇧ + ⌘ + S | Save As Project |
⌘ + P | New Project |
⌘ + G | Share Project |
⌘ + Z | Undo Editing |
⌘ + Y | Redo Editing |
⌘ + A | Select All Text |
⌘ + X | Cut Selected Text |
⌘ + C | Copy Selected Text |
⌘ + V | Paste Copied Text |
⌘ + F | Search Text |
⌘ + ⌥ + F | Replace Text |
Shortcut | Description |
---|---|
Ctrl + Enter | Run the program |
Ctrl + S | Save Project |
Shift + Ctrl + S | Save As Project |
Ctrl + G | Share Project |
Ctrl + Z | Undo Editing |
Ctrl + Y | Redo Editing |
Ctrl + A | Select All Text |
Ctrl + X | Cut Selected Text |
Ctrl + C | Copy Selected Text |
Ctrl + V | Paste Copied Text |
Ctrl + F | Search Text |
Ctrl + H | Replace Text |
Save Unixterm Project
You can save your Unixterm Project with us so that you can access this project later on. To save a project you will need to create a login Id with us. So before you save a project, please create a login Id using a link given at the top right corner of this page.
Share Unixterm Project
You can use this feature to share your Unixterm Code with your teachers, classmates and colleagues. Just click Share Button and it will create a short link, which can be shared through Email, WhatsApp or even through Social Media. A shared link will be deleted if it has been passive for almost 3 months.