Gate One 0.9 Released, Brings SSH To the Web
Riskable writes "Dan McDougall (full disclosure: That's me) just publicly released the source code to Gate One, which is an HTML5-powered terminal emulator and SSH client. It is unique in that it doesn't require any browser plugins (it uses WebSockets) and supports multiple simultaneous terminals/SSH sessions in a single browser tab. It can resume users' sessions after being disconnected, and supports both client and server-side session recording/playback (view as a log or like a video). Gate One can also be embedded into other web-based applications such as administration interfaces, serial port concentrators, virtual appliances, or whatever."
When is sshd in html5 coming, then?
Sounds like this should be Gate 1.0
I looked over the source code.... so how do i use this?
No more downloading putty!
From what I see ncurses apps work great too.
Honestly the first practical thing I have done with HTML5. This thing is nice, clean, and fast!
Shellinabox has been doing this in JavaScript for a while now. There's source and binary packages for everything from Red Hat to Debian armel.
awesome job. Cant wait to try it on the intranet
The best test environment is production. - Me
chrome://browser/content/browser.xul
such as administration interfaces, serial port concentrators, virtual appliances, or whatever.
What is the "Whatever" part? Toasters? Refrigerators? :-)
The source code looks like a bunch of Python files. Somehow I expected an app written in HTML5 to be a bunch of .html files. What am I missing? Does Python run in the browser now?
Please learn the appropriate time and place for "full disclosure" usage.
Um, it's written in Python and runs as a service with a HTML5 frontend.
I've always dreamed that one day, someone will make an SSH client in a browser so all the fun XSS,, CSRF, and the bevy of other web vulnerabilities could come to SSH. SSH has just been to darn secure over the years, but now with this new application, an SSH client can be just as insecure as everything on the web. Thanks!
AccountKiller
I'm curious why is the term "emulator" used? What about this makes in an emulator of a SSH terminal? Is it just because it's being run in a web browser?
Seems to be that Python is doing the real work and being a web server, and the HTML/js part interfcaes to there. Not bad, but... not ssh in html5/js either.
What kind of server-side support does this require? I bet I can not just run it from a static HTML file.
This is useless unless it supports keys. You should always use keys (with a pass phrase) to access publicly available hosts.
This is security 101 here.
In the demo the author uses a password to login via SSH. In the documentation I see no option to use a private key.
UNIX/Linux Consulting
So I can use HTML5 to SSH into my Linux on Javascript server, so I can play a game of TF2 with WebGL?
Now if only I could surf the web...
*this space intentionally left blank
"One of the four pointers saying 'come and see', and I saw, and beheld a white
You need a daemon to proxy between the WebSocket connection (which, remember, isn't a straight TCP stream) and the ssh server proper. Although it appears this doesn't need to be on the machine that the ssh server is running on, so it doesn't look like too much of a hardship. Also, I can't find any reference of which of the umpteen different WebSocket variants it supports.
There's actually a number of these things out already, such as ConsoleFish or ShellInABox. There's also an HTML5 VNC client, which looks very interesting.
I have a few questions (so I only skimmed TFA...)
1) Does this handle the actual SSL connection server side, not client side (as certain web based IRC clients I've seen will), so then, for example, this could be used to effectively ssh to a box through an HTTP proxy, assuming the proxy was between you and the webpage, not the webpage and the target box to ssh to?
2) Assuming the answer to number 1 is yes, how does this differ from Ajaxterm? Is it less of a royal pain in the ass to configure? Is it faster? Thanks
Support the EFF and Creative Commons. The war is coming, and they're supporting you...
I'll wait for Gate 1.0 because SG-1 couldn't do shit without a DHD and in SGA they were always frantically hunting for ZPMs.
And when we got to SGU no one knew WTF they were doing because by the point everything was falling apart and no one understood the language.
Use it.
Accept for bells and whistles, how is this different from Ajaxterm.
I like all the eye candy and features and no doubt they are an improvement over what ajaxterm offers, however, ajaxterm is already a plugin free html based ssh terminal. Put it behind a apache https reverse proxy and block the real ajaxterm port from internet access and you get a pretty good pure html/ajax ssh shell.
awesome, very cool! - it makes it extremely easy to do web browser based secure network projects
1) It uses a server-side proxy. We really need a browser-based ssh client that can connect directly. I know WebSockets can't do it, and that's a shame, but honestly how hard would it be for the browser guys to give us the tools to make this happen (regular TCP sockets???).
2) It doesn't support keys.
We really need something that solves these two problems, using encrypted keys off of a USB stick and making direction connections, so that we can do secure shell sessions from browser-only devices (e.g. ChromeBook type stuff).
Quick browse of the source makes it look like connections run through a python server... so anyone who deploys this on a gateway server (public web, but internally connected) would expose all internal ssh servers -- or at least that's how it appears.
Of course, using the web auth to connect mitigates the risk (but requires dual auth?) -- it's not obvious from the description that the connections to port 22 don't initiate from the browser's machine... and people may deploy this without appreciating the possible internal network exposure.
Back to my mindterm java client.. *sigh*
you're trying to make a business out of it, but don't have a website... and you're still posting this to slashdot??
FireSSH is better. The client runs locally on your machine through FF. No server plugin required. And you don't have to worry about the server hosting the HTML5 frontend going down with FireSSH, unlike this Gate One's 404 and 500 errors.
OK, but if you can get X11 tunneling though and displaying in the browser, too, then I will be REALLY impressed ;)
A browser in a console? ...
Oh, wait
When the website is down? http://liftoffsoftware.com
http://www.isup.me/liftoffsoftware.com
Says I don't have permission to access '/' on this server. Is it really misconfigured or is this the slashdot effect?
doesn't ajaxterm already do this?
http://wiki.kartbuilding.net/index.php/Ajaxterm
Ajaxterm (available in Debian) does this with AJAX. Works great on the iPad except you can't type into it.
http://code.google.com/p/shellinabox/
is useful, in https.
There are several projects that do something similar, for example oterm (https://github.com/davidmoreno/onion/wiki/Oterm. Disclaimer: its my project). This one just need 80kb of a executable, everything included. We have used it succesfully on some released products, as the Aisoy1 Robot, although is disabled by default. There are other, mostly written in python, but my google-fu is not working today. Also FireSSH was there before. On gate one the only new thing is that you dont get access to a computer but to a ssh session. Next time I know that whenever I do something remotely new (although I know there are similar things) I have to post to slashdot.
Man it must be great to get free publicity for doing something many MUD sites and such have been doing for a while. This might have been news in the 90s, at this point though ... not so much.
Real solution in Java: http://www.cryptzone.com/products/agmindterm/