可以通过 SSH 实现 REST API 吗?

Is REST API over SSH possible?

我正在为 IoT 设备和客户端之间的 机密 通信设计 API。必须的是,客户端设备连接是 安全的 并且没有中间人可以调节通信或攻击设备,包括路由服务器。

网络图如下:

客户端必须能够通过每个物联网设备上的 API 服务器 运行 在物联网设备上执行命令。路由服务器只传输请求,但不能被信任

我的问题是:

我应该使用什么协议来实现这个方案?

我对 SSH 有点困惑。 它似乎非常适合通过隧道进行安全客户端 <--> IoT 设备通信。

但是可以使用 SSH 创建 RESTful API 吗?

我不需要直接访问设备的 shell,我需要一个抽象层,由 IoT 设备上的 API 运行 提供。

如果 SSH 不是一个选项,我能否通过任何其他方式从 Client 安全地路由请求并在 IoT 设备上执行命令?

方法就是使用 HTTPS 和证书固定(这与 SSH 在幕后所做的非常相似)。

在对 IoT 设备的第一次请求中,用户在确认它是正确的证书后固定设备的证书。

一旦我们有了证书,我们就可以通过不安全的代理公开 REST API。从那时起,一切都由 TLS 协议自动处理。

安全保证与 SSH 协议相同。

RestAPI设计为在HTTP协议下进行交互。 SSH 协议与 HTTP 完全不同。

因为方法调用方式不同

您可以使用 HTTPS 实现加密,您仍然可以将身份验证绑定到 OS (pam)。

否则你可以建立主机到主机的 SSH 隧道并进行 HTTP 调用。 (当然,您可以自动化所有过程)