Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

You've obviously never pitted Slashdot against a cheap VPS. Even serving static files, the traffic of a good slashdotting will bring a lightweight server to its knees, and this is a story related to SSH.

My assumption that it was completely client side was wrong, of course. There's a python backend that probably handles a lot of the heavy lifting. . . yeah, not going to enter my username/password into this demo, sorry. It does look great, though, and I may look at a self-hosted install.

My idea exactly. Are they going to open up the code for this?But from where I'm sitting I can't see how this is different from a Terminal emulator running on you own host over https.I had setup one of those once, there are a number of terminal emus as js standalones. You just wire it up to a script thatevals the input onto the linux https server and returns the output.

You're right: The four webservers I setup to serve liftoffsoftware.com are barely breaking a sweat right now. Load average on all of them is about 0.02. It is low enough that I'll be taking one or two of them offline I think (why pay for what I don't need?). I also want to mention that I *did* tune them considerably and even modified the Drupal theme to serve up many of the static files via a CDN.

It is the Gate One servers that needed the beefy resources since each open terminal needs to take up enough memory to be stored/kept track of inside of the Python interpreter. 90% of the load there (from a Slashdotting) is memory and I can't believe I didn't foresee this. Lesson learned.

Having said all that I believe I went way overboard by setting up four 4096MB Gate One servers. Here's the line from 'top' on one of the Gate One servers right now (as I'm being slashdotted):1203 1165 3:51.43 36 5.3 20 0 S 980m 768m 211m 0 python./gateone.py

That's with Google Analytics showing ~400 users on the site right now.

5.3% memory utilization is nothing and as long as everyone doesn't stick around surfing the web all day in text mode that number will probably never rise above 10%. I'll be watching it and likely be swapping these servers out with 1GB ones. I love on-demand cloud hosting!

Because it isn't completely client side. Every time you open a new terminal it spawns a new shell and server-side terminal emulator to run it. Gate One wasn't really made to handle a slashdotting but I believe I can make adjustments if necessary to make it work. If the load stays this steady everything should be running smoothly for the rest of the day:)

No, really I have seen many chrome implementations (especially win XP & 7) where basic stuff like the location object is badly corrupt.It usually tracks down to malware or cracked software, but is easily fixed with a reinstall (that's remove -> install. not upgrade)

If by "slashvertisement" you mean "submission by a very long term (5 digit UID) slashdot regular about an open source project he created that many slashdotters are interested in", then yes, "Timmy" is getting pretty heavy on those.

this is the most interesting new web-related thing in a long time, previously you needed java applets to attain this as smoothly as this(it wasn't as smooth). to top that up, the author has been commenting as well as the author of a project that inspired this project. best slashdot of the year perhaps.

1) This is why I setup the demo to run lynx instead of a the regular SSH client... So usernames and passwords wouldn't be a concern (and to avoid liability). Unless you had plans to surf the web all day in text mode at liftoffsoftware.com (logging into things) I can't fathom how this could be a real issue.2) I would never record anyone's usernames/passwords. Of course, you'd just have to trust me and I definitely understand if you don't

Gate One is a web-based Terminal Emulator and SSH client that brings the power of the command line to the web. It requires no browser plugins and is built on top of a powerful plugin system that allows every aspect of its appearance and functionality to be customized.

So it is a SSH client embedded in the web.

But the second half seems self contradictory to me."It requires no browser plugins" but it is "built on top of a powerful plugin system"So it does not require any plugins, but is a plugin?

The other replies covered this already but I thought I'd provide an authoritative answer: It isn't contradictory. Gate One requires no browser plugins but is itself built on top of a plugin architecture. For example, the SSH capabilities all come from a single plugin.

To answer your question: Gate One comes with the SSH plugin pre-installed and enabled. So it's ready-to-go as an SSH client "out of the box" as it were.

As for the plugin architecture, it's not as complicated as it sounds. There's a "plugins" directory. In that directory there's individual plugins such as "ssh" (which is its own directory):/opt/gateone/plugins/ssh

When you execute gateone.py it will scan the plugins directory for plugins and load them accordingly. Plugins can be written in any combination of Python, JavaScript, and CSS (yes, in theory you could make a CSS-only plugin). As an example, here's the layout of the SSH plugin directory:

So in this example the SSH plugin is taking advantage of all three supported plugin types simultaneously: Python, JavaScript, and CSS. Each type will be loaded appropriately... Python files will be imported and their 'hooks' will be attached accordingly, JavaScript files will be automatically added to whatever page is loading Gate One, and CSS files will be automatically added to the HEAD tag of the page. It's all seamless and happens automatically by simply placing the files in the correct locations.

That 'scripts' directory is just somewhere to store that ssh_connect.py script which is what gets called when Gate One spawns a new terminal (by default). Just think of the 'scripts' directory as an arbitrary place to store a non-plugin file or two (I could've just placed them inside the 'ssh' directory but that wouldn't be very organized =).

"Gate One comes with the SSH plugin pre-installed and enabled."How do you pre-install something without access to my computer?So you do have to install something? and that installation involves installing a browser plugin, just like they specifically said that you did not need to do?Or are you saying that your online profile comes with an online "plugin" that is virtually "pre-installed" to your completely online account?

Lets pretend I am just a normal IE, firefox, or chrome user who has never heard of Gate

Lets pretend I am just a normal IE, firefox, or chrome user who has never heard of Gate One before.I do not even have an admin account and I am in a library that locks down their computers from change.Can I use Gate One? or does something need to be installed?

Gate One is something that is installed on a server, not your computer.

Nothing needs to be installed on your computer to use it, other than a compatible, modern web browser.

The administrator of the website using Gate One can install Gate One modules (not browser plugins) on the server, and you the user will immediately have access, via your web browser, to the funcationality that those modules provide.

As this looks like advertishment to me, I will post about my own UNIX web terminal emulator.
Its C, executable only 100kb for the executable with everything contained, and many of the goodies from GateOne (multiple sessions, session attached to user, not browser window...) It also even has colaborative terminal, where two users can attach to the same terminal.
All AGPLv3. https://github.com/davidmoreno/onion/tree/master/examples/oterm [github.com]

I'm the author of ajaxterm which was one of the first web based terminal and is still quite popular even if i dont maintain it anymore. I was not aware of this project, i find GateOne impressive maybe it's time to ditch rxvt:)

THANK YOU SIR! It was AjaxTerm that lead me to develop Escape From The Web [launchpad.net] which was an HTTP streams-based predecessor to Gate One. If it weren't for AjaxTerm's example of how to write such an application I probably would've never gotten around to making Gate One.

So thanks again; Gate One wouldn't have been possible if you never shared your code.

Can I just say thanks to BOTH of you guys. I used to use AjaxTerm a while back. More recently, I found a way out on port 22 so don't need anything like that right now.

Even so, I installed GateOne and really quite like it. One thing, however, is that I have not yet got WebSockets (interesting stuff) working with a reverse proxy in Apache so I will have to have a play around with that at some point. I use Apache as my main front-end for any apps to my home stuff using mod_proxy and don't fancy switching it al

My question is... how does it work. Is it a fully JavaScript/Ajax terminal? Is it using the GateOne servers as a gateway? Is it using a script on someone else's server? What are the security implications of this? How easy would it be to implement this on a malicious page or hack someone's server and modify this to capture keystrokes or SSH keys? Does it support SSH keys?

Well, I hit escape and see a message regarding proxy servers.. which is probably the cause. Does anyone have a work around for "Brucoat" handy? Product looks very interesting.. but if I can't use it..:(

Instead of trying to mess around with trying to proxy, I downloaded and installed. There should be some note with the Tornado package that it does not create the links to the current (not hard to fix but easier if you know). Once the link was created for Tornado, Gateone was up and running within a minute.

Since I have Apache and Tomcat running on this host, I had to change the port. May be worth adding something to the initial run of Gateone to check for port 80 and 443 to be open before trying to stomp

IE 9 doesn't support WebSockets but IE 10 will. Having said that, I do have plans to include friendlier error messages for browsers that lack support for certain things. Under normal circumstances I would have supported IE but Flash-based WebSockets and other workarounds were just too slow or too bandwidth-heavy in my testing to be worthwhile. They might be OK for a single terminal but for multiple terminals they're terrible. Having said that I *do* re-test such things from time to time to see if things