Command Line Client

I’m interested in the idea of creating a command-line client for the ssh app within OnDemand. This might seem strange, but the idea is that, at my institute, we have OnDemand set up in our web portal and users can emulate ssh in-browser without needing to use the VPN that would allow true ssh. However, it’s slightly inconvenient to use the browser, because using some shortcuts, copying text, and the general user experience isn’t necessarily as good as a true terminal. For that reason I was wondering if I could write a command line tool which acts as a client to OnDemand, but instead of running in the browser, it would run as a local application that you would install.

If it’s feasible I would be happy to write this myself, but I’m just asking here to determine the feasibility of this idea, and to maybe get some pointers about how to do this.

Thanks!

Michael:

I’m not quite sure what exactly you are thinking the end goal here is. If you want to utilize a standard SSH client, you should talk to your institution about facilitating that. The whole purpose of OnDemand is to generally hide command line based stuff from clients.

OnDemand just uses typical web standards for the interactions with the client’s browser. You could potentially try to utilize one of the many existing terminal based web browsers (like Lynx or Elinks) to interact.

Also, unless your institution has customized things, by default when you request something like an interactive desktop session, you can either open it in the noVNC in browser tab, or use the ‘native instructions’ to connect via your own local tools such as an SSH / Xwindows client.

If you really want to poke into the details of all the connections and such, our documentation has a great deal if info on the architecture, including all the ports and such: Architecture — Open OnDemand 2.0.20 documentation

My end goal is to run SSH in my terminal at an organisation that won’t allow SSH (including the “native instructions” I believe), but will allow a browser SSH client through OnDemand. Indeed my idea is a lot like using Lynx, so I’ll see if it works out of the box. Thanks for your other suggestions.