我知道有一個使用WebSockets(http://novnc.com)的VNC的實現,但仍然需要一個服務器。我期待創建一個簡單的客戶端JavaScript(無Flash)連接到運行SSH的端口。我猜測WebSockets是唯一能夠實現TCP的方法。任何示例代碼?任何其他方式?是否可以使用JavaScript連接到SSH?
回答
對不起,由於您的限制(僅限客戶端Javascript),無法連接到普通的舊式SSH服務器。
WebSockets不是普通的TCP。它是一個框架協議,在包含源策略的客戶端和服務器之間進行類似於HTTP的握手。
Flash可以建立普通的TCP連接,但它也具有源策略執行。這樣做的方式是通過在端口843上連接到同一臺服務器並請求包含源策略的特殊XML文件。 如果你願意稍微放寬你的約束,以便你願意在服務器(任何服務器)或客戶端上運行一個通用的WebSocket到TCP代理,那麼你可以做你想做的事情。 noVNC包含一個C和python WebSocket到TCP代理:http://github.com/kanaka/noVNC/tree/master/utils/。
其他信息可能對您有用:
當前的WebSocket草案:http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76
- 中運行的Flash策略服務器(Linux/UNIX的用socat)的
簡單(不安全的)方式說明如下:有關Flash策略文件http://github.com/kanaka/noVNC/blob/master/docs/flash_policy.txt
更多信息:http://code.google.com/p/doctype/wiki/ArticleFlashSecurity
你可以看看serfish。這是訪問SSH服務器的解決方案。但是,如果您將您的Web應用程序託管在與ssh相同的服務器上,則還有其他解決方案,如shell in a box。
Serfish使用服務器將在瀏覽器中鍵入的命令傳輸到ssh主機。 shellinabox同樣需要在主機上運行,以便前端瀏覽器終端正常工作。無論如何,只使用JS在客戶端模擬終端而不寫任何服務器(或ssh主機)端代碼? – pathikrit 2010-10-10 01:17:42
對於那些仍在搜索,paramikojs可能是答案。
我目前有一個類似的問題:我需要一個SSH JS客戶端實現,我需要它是BSD許可。唉paramikojs似乎是GPL許可。
從[自述文件](https://github.com/mimecuvalo/paramikojs):*在你問之前,沒有這在常規網頁上不起作用。* – Tamlyn 2014-11-04 11:07:37
絕對有可能使用Linux仿真器,並提供完整的網絡支持,如OpenRISC仿真器jor1k。
請注意,我已經創建了browser-tools.net,這是來自多個不同項目的瀏覽器內工具的集合。
- 1. 如何檢查我是否可以使用JavaScript連接到URL?
- 2. 是否可以使用HTTP連接池?
- 3. 是否可以使用REST連接池?
- 4. 我可以通過ssh連接到datalab
- 5. 是否可以通過SSH使用os.walk?
- 6. 使用Python連接到SSH
- 7. 是否可以從Android連接到MSMQ?
- 8. 是否可以連接到Webpshere MQ?
- 9. GridGain網絡連接:是否可以通過SSH轉發節點?
- 10. 即使連接沒有關閉,Pi是否可以檢查是否有人通過ssh連接
- 11. 是否可以使用一個ssh連接執行多個端口轉發?
- 12. 是否可以使用JavaScript
- 13. 是否可以使用JavaScript
- 14. 是否可以使用套接字使用連接代理?
- 15. 是否可以通過Javascript連接到UDP服務器?
- 16. Ansible無法與ssh連接,但是我可以(使用ssh密鑰)
- 17. 是否可以使用Backbone.sync連接到cometd?
- 18. 是否可以使用WebRTC連接到特定的主機?
- 19. 是否可以使用JDBC將MS Access連接到SQL Server?
- 20. 是否可以使用vscode連接到遠程gdb目標?
- 21. 是否可以使用PHP7連接到SQL Server 2000?
- 22. 是否可以使用Kettle連接到paradox 4.5數據庫?
- 23. 是否可以使用unix套接字連接zf1和memcached?
- 24. 是否可以對SQLDMO API使用可信連接(SSPI)?
- 25. 我無法使用Javascript連接到Splunk,但可以使用Java
- 26. 查找SSH連接是否成功
- 27. 可以tmux窗格遠程ssh連接
- 28. ssh連接到matlab GUI(使用屏幕)
- 29. 使用SSH(Putty)連接到Heroku Postgres
- 30. 使用ssh密鑰連接到Jenkins
這個問題的答案在兩年內有所改變嗎?我很想知道是否有新的東西出現! – Danny 2012-09-18 08:12:16
不適合普通的網絡應用。但是,Chrome打包的應用程序現在支持原始TCP/UDP套接字:https://developer.chrome.com/apps/app_network.html例如,他們有一個示例telnet客戶端:https://github.com/GoogleChrome/chrome- app-samples/tree/master/telnet你可以擴展telnet例子來添加加密和密鑰管理來創建一個ssh應用程序。但是這僅限於Chrome打包的應用程序,而不是通用的網絡應用程序。 – kanaka 2012-09-18 13:34:35
除此之外,Chrome還提供SSH客戶端作爲打包應用:https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo – BHSPitMonkey 2014-01-27 20:16:14