Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm looking for a web-based solution (accessible via the internet) that allows me to establish an SSH connection to computers on my internal network (Linux boxes). I don't want to install custom software on each and every computer I want to access this way.

I've looked at the documentation of anyterm,ajaxterm,shell in a box,... and these solutions seem to require a piece of software that is installed on each and every computer in order to expose the web interface.

My internal network is sitting behind a (DD-WRT) router that has SSH capabilities. From the outside (internet) I can connect to the router on a non-standard SSH port.

That router in turn has access to my internal network, and as such can create SSH connections to boxes in that internal network. (

I would like to be able to access there internal computers from a web interface without the need to install custom software on these internal computers.

The solution would consist of

a server-side part that

  • connects to the DD-WRT router
  • from the DD-WRT router connects to the internal network resource via SSH

All of this needs to be done in an automated way. I don't want the user setting up the SSH connection to the DD-WRT router, and then from that shell execute another ssh command to get to the internal network resource.

a client-side part that

  • renders the ssh terminal on a webpage using javascript/ajax

I'm not looking for a hosted solution, but rather something I can integrate in my own management console.

share|improve this question

3 Answers 3

How about a browser plugin like this one for chrome. Since chrome offers synchronization of plugins based on logged in user name - assuming you have google acount - this will allow you to have the plugin installed automatically on new computer.

If not - there are multiple free web based services available online.

For example http://sshterm.com/forum/

share|improve this answer
    
I don't want to rely on browser plugins, as sometimes we need to run in a restricted environment where plugins cannot be installed. Also, I guess the solution I'm looking for needs to be able to create an SSH connection through an SSH tunnel (first connecting to the dd-wrt router, and then setting up the SSH connection). All of that needs to be done in an automated way. –  ddewaele Apr 1 '13 at 12:35

Is your goal to access websites hosted internally or to access files via ssh/scp/sftp?

If it is to access files via ssh, what is wrong with sshing to your router then sshing to the computer?

If the goal is to access files/websites internally through a web browser or SCP/SFTP client then I would suggest a dynamic SSH tunnel and configuring your browser/client to use the SOCKS proxy.

share|improve this answer
    
The goal is simply to provide SSH access to the internal machines (Linux boxes) through a web browser, available on the internet. Something like anyterm. the difference with anyterm being that I don't want to install custom software on the internal machines and all SSH access needs to go through the DD-WRT router (=only device exposed on the internet) –  ddewaele Apr 1 '13 at 15:01

PuTTY, likely the most-used SSH client, is small and portable, except it saves settings in the Windows registry. PuTTY Portable, part of the Portable Apps launcher and suite, stores settings locally. Fits easily on a flash drive.

Ajaxterm is something that you can run on an Internet-accessible web server and use to access predefined hosts behind it. Protect it with HTTPS and HTTP authentication or client certificates. I've used this before. Works great on a PC but you can't type anything into the virtual keyboard on an iPad the last time I messed with this.

Then there is GateOne which seems to be an HTML5 implementation of an SSH client capable of connecting to any host or limited hosts according to how you configure it. I have not had a chance to play with this yet.

share|improve this answer
    
I briefly looked at AjaxTerm (help.ubuntu.com/community/AjaxTerm). I installed it on a linux box and could get the web based ssh. However, how do I configure it to establish an ssh connection to another machine ? You mentioned that you can access predefined hosts behind it. How do you do that ? –  ddewaele Apr 1 '13 at 15:56
    
From what I remember I had it reversed proxied using Apache to a different machine. I will update with config info if I have time. –  ultrasawblade Apr 1 '13 at 15:58
    
do you remember if you had an ajaxterm deamon running on every machine you wanted to expose behind the apache reverse proxy ? I don't have the privileges to install the ajaxterm daemon on all my linux boxes. –  ddewaele Apr 1 '13 at 17:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.