Projects / Shell In A Box

Shell In A Box

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 starts a Web server at http://localhost:4200 that allows users to log in with their username and password and to get access to their login shell. The connection will be encrypted if SSL/TLS certificates are available.

Tags
Licenses
Operating Systems
Implementation

Recent releases

  •  29 Jan 2009 21:56

    Release Notes: This is a full rewrite of the original ShellInABox code. Instead of requiring a Java applet, ShellInABox now works with any Javascript/CSS-enabled browser.

    •  18 Nov 2000 03:51

      Release Notes: Initial public release.

      Recent comments

      19 Oct 2011 18:11 zferentz

      GREAT IDEA & IMPLEMENTATION !!!
      I've been using it for a while , works really great .
      I wonder if anyone has encountered the following issue:
      My login-shell is not standard bash , it is a script that eventually calls the "/bin/sh" . something like this:
      #/usr/bin/env python
      import os
      os.system("/bin/sh")
      while 1:
      # do something else...

      The problem is that if the session disconnects (probably SIGHUP) all the processes terminate EXCEPT the script (which is "dangling" in the loop) . I've found out that AFTER the system(), this is an orphan process owned by "init" (PID 1) .
      it seems that the script that is inside the system() call simply ignores the signal.
      I tried to add signal handling but it didn't help.

      I had to solve it by checking the PPID before and after the system() and force exit if PPID has changed to "1"

      Can anyone think of another solution ? or even better - can anyone explains why the signal is ignored ?

      12 Jan 2011 20:30 gvy

      See also http://en.wikipedia.org/wiki/Web-based_SSH -- chose this one.

      18 Aug 2003 15:45 tino

      Re: Use https or try lying

      > This software will only work, if the
      > firewall doesn't block Java


      Try https://, as this uses the connect method. If this still fails, try a "proxy capable" proxy running at localhost which can strip/alter request tags like the user agent (don't know one now, you will find it, freshmeat is your friend *eg*).

      -Tino

      28 Mar 2003 05:23 amoser

      Does not work if Java is blocked (e.g. by the firewall)!
      This software will only work, if the firewall doesn't block Java pass-through, but this is unfortunately true for my company's environment. :(

      20 Nov 2000 19:17 trebonius

      Great idea! Almost perfect!
      This is a great idea, and works really well for a beta. I must say I'm impressed. The only things that are problems for me are that you can't change your background color... If I want to use BitchX, some things aren't readable because they are in white text... on white. I'd like to be able to chose my own background color. Also, it seems to run into some sort of problem with some connections... If I try to rsh somewhere after connecting, it doesnt talk to me after I enter the password. The same thing happens when telnetting into my favorite BBS, only this happens after I choose my display type.

      Beyond some pretty minor issues, I very cool program, and well done. This was the only method (out of a great many) that allowed me to successfully reach my home Linux box from behind my strict work firewall.

      Screenshot

      Project Spotlight

      OpenStack4j

      A Fluent OpenStack client API for Java.

      Screenshot

      Project Spotlight

      TurnKey TWiki Appliance

      A TWiki appliance that is easy to use and lightweight.