gpt4 book ai didi

linux - 如何使用 xterm.js 创建基于 web 的终端以 ssh 进入本地网络上的系统

转载 作者:IT王子 更新时间:2023-10-29 00:15:31 25 4
gpt4 key购买 nike

我遇到了这个很棒的图书馆 xterm.js这也是 Visual Studio Code 终端的基础。我有一个非常笼统的问题。

我想通过基于网络的终端(不在网络中,可能在 aws 服务器上)访问本地网络上的机器(ssh 到机器)。我能够在本地网络中成功执行此操作,但我无法得出从 Internet--> 本地网络执行此操作的结论。

作为示例 - 在 ip 54.123.11.98 上运行应用程序的 aws 服务器有一个 GUI,带有一个用于打开终端的按钮。我想打开本地网络中本地 ip 192.168.1.7 上某个公共(public) ip 后面某处的本地机器的终端。

是否可以使用某种可以使用 xterm.js 的解决方案来实现上述示例,这样我就不必去构建基于 Web 的终端?以这种方式公开终端时,我应该牢记哪些主要安全问题?

我在考虑在 AWS 和本地网络 ip 之间使用固定的中间服务器,并使用某种反向 ssh 隧道过程来执行此操作,但我不确定这是正确的方法还是可以有更简单的方法/实现这一目标的更好方法。

我知道 digital ocean、google cloud,他们都这样做,但他们必须连接到具有公共(public) ip 的计算机,而我在本地网络中有一台机器。我真的不想配置路由器来进行任何类型的设置。

最佳答案

经过一些研究,这里是工作代码。

图书馆:

1) https://socket.io/

该库用于从客户端向服务器传输数据包。

2) https://github.com/staltz/xstream

这个库用于终端 View 。

3) https://github.com/mscdex/ssh2

这是用于与远程服务器建立连接的主要库。

第 1 步:将 Library 3 安装到您的项目文件夹中

第 2 步:从节点端开始为打开的套接字创建一个 server.js 文件

第 3 步:连接客户端套接字到节点服务器(都在本地机器上)

棘手的逻辑是如何使用socket和ssh2。

在发送套接字时,您需要使用 ssh2 库触发 SSH 命令。在 ssh2 库(来自服务器)的响应中,您需要将套接字包传输到客户端。就是这样。

点击here找一个例子。

该示例将包含这些文件和文件夹:

Type    Name
------------
FILE server.js
FILE package.json
FOLDER src
FOLDER xtream

首先你需要在 server.js 上配置你的服务器 IP、用户和密码或证书文件,然后运行 ​​node server.js

P.S.: 不要忘记运行 npm install

如果您有任何问题,请告诉我!

关于linux - 如何使用 xterm.js 创建基于 web 的终端以 ssh 进入本地网络上的系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com