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

RSS 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.

  •  30 Jan 2001 06:13

    Release Notes: Initial public release.

    RSS 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 en.wikipedia.org/wiki/... -- chose this one.

    18 Aug 2003 15:45 tino Thumbs up

    Re: Use https or try lying

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

    Try , 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 Thumbs up

    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

    Xataface

    A simple but powerful framework for developing MySQL Web applications.

    Screenshot

    Project Spotlight

    cegojdbc

    A JDBC driver for the Cego database system.