是否可以使用JavaScript连接到SSH?

pat*_*rit 28 javascript browser ssh tcp websocket

我知道有一个使用WebSockets(http://novnc.com)的VNC实现,但仍然需要服务器.我希望创建一个简单的客户端JavaScript(没有Flash)连接到运行SSH的端口.我猜测WebSockets是唯一的方法,因为它做TCP.任何示例代码?还有其他方法吗?

kan*_*aka 16

对不起,鉴于您的约束(仅限客户端Javascript),无法连接到普通的旧SSH服务器.

WebSockets不是普通的TCP.它是一个框架协议,在客户端和服务器之间具有类似HTTP的握手,包括原始策略.

Flash可以建立纯TCP连接,但它也有源策略实施.它的方式是通过在端口843上建立到同一服务器的连接,并要求一个包含原始策略的特殊XML文件.如果您愿意稍微放宽约束,以便您愿意在服务器(任何服务器)或客户端上运行通用WebSockets到TCP代理,那么您可以执行您想要执行的操作.noVNC包括一个C和python WebSockets到TCP代理:http://github.com/kanaka/noVNC/tree/master/utils/.

您可能会发现有用的其他信息:

  • 这个问题的答案是否已经改变了两年?我很想知道是否有新的东西出现了! (2认同)
  • 不适用于纯网络应用.但是,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打包应用,而不是通用网络应用. (2认同)
  • 除此之外,最近Chrome还提供了一个SSH客户端作为打包的应用程序:https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo (2认同)

Col*_*ert 5

你可以看看serfish。这是访问SSH服务器的解决方案。但是,如果您将 Web 应用程序与 ssh 托管在同一台服务器上,则还有其他解决方案,例如shell in a box