SSH por web
# SSH por web

SSH por web designa el método que hace posible acceder a un servidor SSH mediante un navegador web. Los clientes están basados típicamente en JavaScript/Ajax o JavaScript/WebSockets, y son usados para acceder a un servidor SSH por debajo de un proxy o firewall que permita el tráfico HTTP pero no el tráfico SSH.

## Tecnología

Los clientes SSH basados en red básicamente consisten en las siguientes partes:

* Frontend: Típicamente son usadas JavaScript y AJAX para capturar la entrada del teclado, transmitir mensajes del y para el servidor y mostrar los resultados en el navegador del usuario.
* Backend: Las peticiones entrantes son procesadas en la aplicación web. Los eventos del teclado son redireccionados a un cliente SSH conectado a un servidor SSH. La salida de la terminal pasa por el cliente mientras es convertida en HTML mediante JavaScript o es traducida a HTML directamente por el servidor.

### Emulación de la terminal del lado del cliente

Los servidores SSH basados en web que utilizan emulación de terminal del lado del cliente típicamente transmiten la salida cruda de la terminal del servidor SSH directamente al cliente. Esto tiene la ventaja de aligerar la carga del proceso de traducir la salida de la terminal a HTML en el cliente. La desventaja de este método en que está limitado por las capacidades de JavaScript y que aumenta la carga en la CPU y memoria del cliente al procesar el flujo de caracteres entrante. También responsabiliza al cliente de mantener el estado de la terminal y responder a las secuencias de escape de caracteres.

### Emulación de la terminal del lado del servidor

Los servidores SSH basados en web que utilizan emulación de terminal del lado del servidor típicamente siguen el estado de la pantalla del terminal y convierten ésta a HTML cuando se actualiza la pantalla o cuando el cliente expresamente pide una actualización. La ventaja de este método esque el estado de la terminal persiste incluso si el usuario se conecta a la sesión existente desde un navegador web diferente. También habilita al servidor a actuar sobre la salida terminal incluso si el usuario se desconecta. La desventaja de este método es que aumenta la carga de memoria y CPU del servidor.

