【发布时间】:2014-10-09 07:45:45
【问题描述】:
我想要一个 NodeJS 应用程序,我可以使用公钥通过 SSH 连接到该应用程序并向其发送一些数据。更明确地说,它应该如下所示:
- NodeJS 应用程序编写了一些函数
- 我从服务器对 nodejs 应用程序进行 ssh,并尝试通过我的公钥来识别我
- 通过身份验证后,我可以向它发送一些字符串,应用程序将解析字符串并执行不同的功能
唯一的问题是我无法使用现有的任何 SSH npm 包来做到这一点。我希望 nodejs 应用程序只接受 SSH 连接并进行身份验证并等待一些字符串。这可能吗?
编辑:我想采用这种方法,因为我只想调用节点函数以仅从某些允许的客户端(服务器)执行某些操作,并且我不想通过 HTTP 发送这些请求,因此任何人都可以访问它
【问题讨论】:
-
SSH 通常允许您执行命令,这些命令可以直接指向您的节点应用程序。为什么要在 node 中做 SSH 部分?
-
因为,我不想让一些使用来自 SSH 的参数运行的 bash 脚本,我只想执行一些执行多项任务的节点函数。而不是从带有 HTTP 请求的服务器调用节点应用程序,我想使用 SSH 类型的连接,因为它更安全。因为我只想让请求来自少数允许的客户端
-
HTTPS 不够好?另一种选择是将您的节点应用程序设置为用户的登录外壳:)
-
HTTPS 已经足够好了。但我的主要问题是我不希望请求来自任何其他 IP,而不是来自给定服务器的请求。所以没有其他人可以触发来自任何其他 IP 的请求。到目前为止,我使用 express 仅允许来自 1 个 IP 的请求。但在该功能中,我必须允许来自我拥有的其他多台服务器的请求,并且此脚本将在许多其他服务器上运行。这将使管理变得一团糟。
-
此应用程序将部署在多个服务器/vps 上。因此,如果我要更新允许的 IP 地址,那么访问每个服务器/vps 并更新允许的 IP 请求将是一团糟。这就是为什么我正在研究类似的东西,所以我可以通过公钥进行身份验证。