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?
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!
Eternal beta worked well for GMail... (although frankly I agree with you)
Its Gate .05 because its beta. If it was Gate 1.0 it would be version cupcake.
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? :-)
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
It looks to be written using Tornado, which means that the WebSocket app is served up by the Python backend. In other words, this isn't a stand alone HTML-only implementation, which would be impossible since that's not what WebSockets do.
He who has no
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.
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.
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*
Key-based authentication will be available in Gate One 1.0. It used to be there (and work) but it got lost when I wrote Gate One's plugin system and decided that SSH support should simply be a plugin (in case someone wanted to embed Gate One into something else without having all that SSH-specific stuff).
Shouldn't take me long to re-implement it so keep checking for updates.
-Riskable
"Those who choose proprietary software will pay for their decision!"
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 ;)
doesn't ajaxterm already do this?
http://wiki.kartbuilding.net/index.php/Ajaxterm
Apparently you access a lot of "publicly available" SSH servers? I don't know about you but all the SSH servers I connect to on a regular basis are "private".
Regardless, key-based authentication will be there in Gate One 1.0. Passphrases and all.
-Riskable
"Those who choose proprietary software will pay for their decision!"
Gate One is meant to run on a server. As in, you setup a Gate One server on your network and then you connect to it from a client machine (Windows works fine for this). Another way it can be used is on a server... As a backup in case the SSH daemon stops working or, say, to embed a terminal into a web-based administration interface.
Of course, you could run it on your desktop and use it like a traditional SSH client (I do it every day when I'm working on it) but it wouldn't be as useful.
-Riskable
"Those who choose proprietary software will pay for their decision!"
I haven't set the website up yet (which is why I didn't link to it anywhere but a few places in the docs). There's also a note on the Github page saying this.
-Riskable
"Those who choose proprietary software will pay for their decision!"
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.
It is, but it's spelled "Gate One".
The arbitrary version is 0.9.
The sound file is only temporary regardless. I'll be picking/making something else for 1.0. Probably the favicon too.
Nice catch though. Most people would never have noticed that.
-Riskable
"Those who choose proprietary software will pay for their decision!"