Je možné se připojit k SSH pomocí JavaScriptu?

Vím, že existuje implementace VNC pomocí WebSockets (http://novnc.com), ale to stále vyžaduje server. Chci vytvořit jednoduché připojení JavaScriptu na straně klienta (bez Flash) k portu se systémem SSH. Hádám, že WebSockets je jediný způsob, jak jít, protože to dělá TCP. Nějaký příklad kódu? Nějaký jiný způsob?

Odpověď

Je nám líto, ale vzhledem k vašim omezením (pouze Javascript na straně klienta) neexistuje způsob, jak se připojit k obyčejnému starému serveru SSH.

WebSockets není obyčejný TCP. Je to rámcový protokol s navázáním komunikace mezi klientem a serverem podobným HTTP, který zahrnuje zásady původu.

Flash může vytvářet jednoduchá TCP spojení, ale má také vynucování zásad původu. Dělá to tak, že se připojí ke stejnému serveru na portu 843 a požádá o speciální soubor XML, který obsahuje zásady původu. Pokud jste ochotni mírně uvolnit svá omezení tak, že jste ochotni spustit generické WebSockets TCP proxy buď na serveru (jakýkoli server) nebo na klientovi, pak můžete dělat, co chcete. noVNC obsahuje C a python WebSockets to TCP proxy:http://github.com/kanaka/noVNC/tree/master/utils/.

Další informace, které by se vám mohly hodit:

  • Aktuální koncept WebSocket:https://datatracker.ietf.org/doc/html/draft-hixie-thewebsocketprotocol-76

  • Jednoduchý (nezabezpečený) způsob spuštění flash policy serveru (Linux/UNIX s socat) je popsán zde:http://github.com/kanaka/noVNC/blob/master/docs/flash_policy.txt

  • Další informace o souboru zásad flash:http://code.google.com/p/doctype/wiki/ArticleFlashSecurity