3 ms·
I thought it was implementing SSH in JS and WebSockets aka an "HTML5 SSH client" I don't think that's possible. You would have to implement encryption in JavaS
by maratd 15y ago
I thought it was implementing SSH in JS and WebSockets aka an "HTML5 SSH client"
I don't think that's possible. You would have to implement encryption in JavaScript and that is a horror in it's own right, especially when it comes to performance. There would be other problems too.
Means also that your password travels to the host machine then and that you get double latency.
Yes, but if you install this on your machine or another machine on your local network, it shouldn't be too bad.
"Bleh" comes to mind :-(
This is actually very cool! I develop on Windows (personal preference), but my development + production is all Linux. There's also instances on Rackspace and EC2, all Linux. This allows me to connect to them through the browser, without running SecureCRT or Putty!
- skeptical 15y agoWe get to see all kinds of impressive stuff here at HN. I was skeptical about what this was for the reasons you pointed out. An SSH client in javascript and HTML5... "HTML5 SSH Client" is a misleading title because is not accurate. The heavy lifting resources to python and system calls.
- riskable 15y agoGate One just comes with a bundled SSH plugin that makes using it for SSH really convenient. You can actually use Gate One to run any terminal application you desire. For example, if you run "sudo ./gateone.py --command=/bin/login" Gate One will instantly become the equivalent of logging into the host's console. It can be a great (secure) back door into a server in case SSH or PAM auth ever breaks. -- Dan McDougall - Author of Gate One
- zokier 15y agoI don't see any reason why implementing SSH in JS wouldn't be possible. You'd need a small server-side part to wrap TCP to WebSockets, but it shouldn't need to touch SSH in any way. Otherwise there shouldn't be really many obstructions. Yes, it might be slower than OpenSSH, but at least it would be secure. edit: found websockify[1], which should be enough as the server-side component. Now only client-side remains :) [1] https://github.com/kanaka/websockify https://github.com/kanaka/websockify
- maratd 15y agoYou'd need a small server-side part to wrap TCP to WebSockets, but it shouldn't need to touch SSH in any way. You probably mean WebSockets to TCP. That kinda kills the client-side concept. That is a neat little library though. Otherwise there shouldn't be really many obstructions. The entire point of SSH as opposed to Telnet is that it uses encryption. That means you need to do encryption in JavaScript. Now, I have a number of encryption algorithms that I use on a regular basis in JavaScript for short strings. In theory, you can do it for longer strings. In practice, I suspect you'll grind your browser to a halt. Would be interesting if somebody else tried it though ...
- zokier 15y agoThe entire point of SSH as opposed to Telnet is that it uses encryption. Exactly. And that's why I'd prefer complete end-to-end encryption instead of giving plaintext to a middleman (or in worst-case scenario to an unknown middleman). edit: Re: Performance. Best source I could find[1] about encryption with JS claims unoptimized AES implementation doing 30 kB/s in Firefox 3 on 2 GHz Core 2. Certainly enough for interactive use. [1]: http://www.movable-type.co.uk/scripts/aes.html http://www.movable-type.co.uk/scripts/aes.html
- darklajid 15y agoOut of curiosity: What is the improvement for your workflow? I'm genuinely interested, because I cannot even imagine why I'd drop putty (or something similar) and go for a web client here (at least not unless it would be something completely without a backend that I need to install first). So: Why would you like to drop ~native~ clients?
- riskable 15y agoHere's a couple of reasons why Gate One is superior to PuTTY: * Gate One makes temporary network disruptions a trivial inconvenience: If your connection drops (which is sadly very common with business VPNs and home Internet connections) you can instantly resume all your open terminals the moment it comes back online. This also works for when you need to reboot your computer (not that Windows ever makes you do that ;). * Gate One's bookmark manager is vastly superior to PuTTY's built-in session manager. With PuTTY, if you have more than a few "Saved Sessions" you'll have to scroll and scroll to find the one you want and the connection window isn't resizable. Also, you can't attach notes or classify them in any way. Gate One's bookmark manager is so much nicer (and faster to navigate). * Gate One terminals don't clutter up your task manager. I've seen Systems Administrators struggle to find the right window when they have dozens of PuTTY windows open. Some other SSH clients support tabs but those can get out of control just as quickly. Gate One's grid view lets you manage (and find) a large number of terminals very efficiently. * Gate One's session logging/recording, playback, and sharing features. PuTTY supports raw, text-based logging but it is unreliable (if you don't shut down PuTTY properly the log will be lost). Of course, there's other features you might like but I won't enumerate them all here. PuTTY does some things Gate One can't do (e.g. port forwarding) but for most day-to-day stuff Gate One will probably be better. -- Dan McDougall - Author of Gate One
- maratd 15y agoSo: Why would you like to drop ~native~ clients? I use SecureCRT (not free). Really good software, has tabs, a ton of features. However ... 1. I have to install it on every computer I use. It's not free or cheap. If I re-install OS, I have to re-install it. It is supported on Windows, Mac, and Linux, but if I need access while using my tablet or phone ... I'd need to install something else. 2. I use many servers and it doesn't synchronize settings between computers. I want to have access to all my servers whether I'm in the office or using my laptop at home. Not an issue with a web based system. 3. I make web based software, so ... it only makes sense that I support the ecosystem =)