【问题标题】:Is it possible to connect to SSH using JavaScript?是否可以使用 JavaScript 连接到 SSH?
【发布时间】:2011-04-23 07:06:58
【问题描述】:

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

【问题讨论】:

    标签: javascript browser tcp ssh websocket


    【解决方案1】:

    是的,你可以

    1. 在你的服务器上安装 SSH 服务器

    2. 编写一个使用 SSH 的服务器端程序(可以是 PHP) 后台客户端

    3. 在 SSH 客户端(可能与 SSH 服务器位于同一服务器中)和互联网另一端的 Web 浏览器中的 JavaScript 程序之间重定向消息。

    该服务器端程序仅充当邮递员,浏览器中的 java 脚本程序只是用户和服务器程序之间的另一个邮递员。

    (SSH 服务器)(SSH 客户端)(PHP 例如)(JavaScript)

    另外不要忘记,在 JavaScript 程序中可以使用 Ajax 以获得更好的机制。此外,SSH 客户端可能不是完全必要的,因为 PHP 服务器端程序可以直接连接到 SSH 服务器

    【讨论】:

    • 更好的格式让你的答案更清晰。
    【解决方案2】:

    绝对可以使用具有完整网络支持的 Linux 模拟器,例如出色的 OpenRISC 模拟器 jor1k

    请注意,我创建了 browser-tools.net,这是来自多个不同项目的浏览器内工具的集合。

    【讨论】:

      【解决方案3】:

      对于那些仍在搜索的人,paramikojs 可能是答案。

      我目前遇到了类似的问题:我需要一个 SSH JS 客户端实现,并且我需要它获得 BSD 许可。唉 paramikojs 似乎是 GPL 许可的。

      【讨论】:

      • 来自readme在您问之前,不,这不适用于常规网页。
      【解决方案4】:

      抱歉,鉴于您的限制(仅限客户端 Javascript),无法连接到普通的旧 SSH 服务器。

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

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

      您可能会觉得有用的其他信息:

      【讨论】:

      【解决方案5】:

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

      【讨论】:

      • Serfish 使用服务器将在浏览器中键入的命令传送到 ssh 主机。 shellinabox 同样需要在主机上运行,​​前端浏览器终端才能工作。有没有办法只使用 JS 在客户端模拟终端而不编写任何服务器(或 ssh 主机)端代码?
      猜你喜欢
      • 2016-05-29
      • 2023-03-08
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多