novnc - ¿Es posible conectarse a SSH usando JavaScript?
novnc client (4)
Definitivamente es posible usar un emulador de Linux con soporte de red completo como el gran emulador de OpenRISC jor1k .
Tenga en cuenta que he creado browser-tools.net , una colección de herramientas en el navegador a partir del número de proyectos diferentes.
Sé que hay una implementación de VNC usando WebSockets (http://novnc.com) pero que aún requiere un servidor. Estoy buscando crear una conexión simple de JavaScript solo para el cliente (sin Flash) a un puerto que ejecuta SSH. Supongo que WebSockets es la única manera de hacerlo, ya que lo hace TCP. ¿Algún código de ejemplo? ¿Cualquier otra manera?
Lo sentimos, dadas sus restricciones (solo en el lado del cliente de Javascript), no hay forma de conectarse a un viejo servidor SSH simple.
WebSockets no es simple TCP. Es un protocolo enmarcado con un protocolo de enlace tipo HTTP entre el cliente y el servidor que incluye la política de origen.
Flash puede hacer conexiones TCP simples, pero también tiene aplicación de políticas de origen. La forma en que lo hace es estableciendo una conexión con el mismo servidor en el puerto 843 y solicitando un archivo XML especial que contenga la política de origen. Si está dispuesto a relajar sus limitaciones ligeramente de manera que esté dispuesto a ejecutar un WebSockets genérico a un proxy TCP en un servidor (cualquier servidor) o en el cliente, entonces puede hacer lo que quiere hacer. noVNC incluye C y python WebSockets para proxy TCP: http://github.com/kanaka/noVNC/tree/master/utils/ .
Otra información que puede serle útil:
Borrador de WebSocket actual: http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
Aquí se describe una forma simple (insegura) de ejecutar un servidor de políticas flash (Linux / UNIX con socat): http://github.com/kanaka/noVNC/blob/master/docs/flash_policy.txt
Más información sobre el archivo de política flash: http://code.google.com/p/doctype/wiki/ArticleFlashSecurity
Para aquellos que siguen buscando, paramikojs podría ser la respuesta.
Actualmente estoy teniendo un problema similar: necesito una implementación SSH JS del lado del cliente, y necesito que tenga licencia BSD. Alas paramikojs parece tener licencia GPL.
Puedes echarle un vistazo a serfish . Es una solución para acceder a un servidor SSH. Pero si aloja su aplicación web en el mismo servidor que su ssh, existen otras soluciones, como el shell en una caja .