Slashdot Mirror


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

15 of 151 comments (clear)

  1. This isn't new. by lolcutusofbong · · Score: 2

    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.

  2. !HTML5 Powered by Anonymous Coward · · Score: 5, Informative

    Um, it's written in Python and runs as a service with a HTML5 frontend.

    1. Re:!HTML5 Powered by Riskable · · Score: 2

      I could be feeding a troll here but... The problem with writing a terminal emulator using old-school methods ("HTML4 Powered") is the latency and overhead associated with long-polling and long-held HTTP streams. It would be incredibly slow and inefficient to have more than one terminal open at a time. I know this for a fact. How?

      I've written such an app

      No one ever used it--not even me. Because it sucked. Without WebSockets and Web Workers such a thing will always be slow. Without HTML5's "contentEditable" ability you can't even copy & paste properly.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
    2. Re:!HTML5 Powered by Timmmm · · Score: 3, Informative

      Well obviously. The client is written in HTML5. If you knew anything at all about HTML5 you'd know it is impossible to write a "true" ssh client using HTML5. Instead this connects to a python server which then goes on to connect to the actual sshd. The point is that you don't need an ssh binary installed on the client.

      You could actually remove ssh from the equation, but it looks like the gate server allows you to connect to *any* ssh server, so I guess that's why they didn't do that.

  3. Finally, an ssh client as secure as a browser! by Vellmont · · Score: 2

    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
    1. Re:Finally, an ssh client as secure as a browser! by Animats · · Score: 2

      Mod parent up.

      Not everything should be done in a web browser.

      Take a look at the source code which stores SSH authentication information in browser cookies. In plaintext. In JSON. Idiots will start using this, and they'll open a back door into a remote server.

    2. Re:Finally, an ssh client as secure as a browser! by Vellmont · · Score: 2


      It isn't the programming language that makes it insecure, it is the programmer.

      It's the programmer, AND the environment the application was written in. A web browser isn't exactly a secure environment.

      --
      AccountKiller
    3. Re:Finally, an ssh client as secure as a browser! by Riskable · · Score: 2

      If you weren't in such a hurry to be negative you'd realize that the cookies are ENCRYPTED. And I'm not just talking about the fact that Gate One runs over SSL. No, the cookie Gate One uses is itself encrypted. There's a reason why the function is called set_secure_cookie().

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
  4. Re:Emulator? by cornface · · Score: 3, Informative

    Because it is emulating a terminal, which back in the stone age was an actual piece of physical hardware.

    Sometimes they were magical interactive typewriters which is where the abbreviation 'TTY' comes from.

  5. Key pairs? by Neil+Watson · · Score: 4, Interesting

    In the demo the author uses a password to login via SSH. In the documentation I see no option to use a private key.

    1. Re:Key pairs? by Riskable · · Score: 3, Informative

      Private key support is forthcoming... I had it working just fine but then I had the bright idea of writing a plugin system for Gate One and making the SSH part just another plugin :)

      Key-based SSH authentication and user management thereof should be there in 1.0. Really, it isn't rocket science... Just a matter of wrapping a GUI around the functions that are already there in the code.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
  6. Web 2.0 by Sduic · · Score: 2

    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
  7. ...but does require a server plugin by david.given · · Score: 4, Informative

    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.

  8. FireSSH by jasonla · · Score: 2

    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.

  9. Re:Cool by Anonymous Coward · · Score: 2, Insightful

    No more downloading putty!

    Instead you need to download and install python and a python based server.