我有一个相当开放式的问题,关于从运行 Windows 10 IoT Core 的 Raspberry Pi 3 创建 SSH 反向隧道代理。
我的情况并不复杂 - 我的互联网(顺便说一句,这很糟糕)使用 NAT,并且没有可以转发端口的面向公众的 IP 地址。我需要一种方法通过反向隧道代理通过 SSH 将我的 Raspberry Pi 3 连接到外部世界。在任何非 Windows 10 IoT Core 设备上,它都不会那么复杂(只需一个格式良好的 SSH 终端命令,然后砰的一声,我们就可以开始了)。然而,在尝试从我的设备创建反向隧道几次后,我一无所获。
首先,Windows 10 IoT Core 不附带任何 SSH 软件,而且(据我所知)无法在最小化的操作系统上安装 PuTTY 或 OpenSSH。如果我错了,请纠正我 - 如果我所要做的只是安装一些软件,这将是一个非常方便的解决方案。我考虑了一种替代方法,即创建一个自定义后台任务(在 UWP 中),该任务将使用 SSH 库(我发现了 SSH.NET)来创建隧道 - 但在这里,我又被难住了。也许实际上可以使用这种方法来创建隧道;我对这类东西的经验非常有限,而且我很可能错过了一些可以实现这一切的功能。
由于我在这方面经验不足,我无法成功完成这两种方法,而且到目前为止,我还没有想出其他替代方案,这就是为什么我只能向全世界公开这个问题。我知道这个问题可能比较主观(完成这项任务的方法可能有很多),但目前,互联网上似乎没有任何东西可以回答它。
感谢任何解决方案,Lucas Niewohner
答案1
我的情况也一样,非常需要从 Windows IoT Core 设备建立反向 SSH 隧道。据我所知,目前只有 IoT Core 内支持 SSH 服务器。
另一种选择是可能工作 - 我还没有测试过 - 是使用 Powershell 构建反向隧道,类似于设置例如这里理论上,应该可以将这样的脚本配置为具有特权权限的任务,以实现所需的功能。
就远程管理而言,微软似乎建议你使用基于 OMA MDM 的解决方案(例如 Microsoft Intune 或 SCCM)或基于 Azure IoT Hub 的解决方案(如概述这里)。我最多带着中等热情,能够使用此方法远程更新软件和 RPi 的一些配置。但是,您需要安装某种 TPM(或使用软件模拟变体,但似乎在生产构建的 IoT Core 映像中不可用)。
如果你对 IoT Core 的要求是使用基于 C# 的自定义应用程序(就像我的情况一样),那么另一种非常规方法可能是使用 Linux 发行版单核细胞增多症然后使用“classis”反向 SSH 隧道这一经过验证的方法。
我计划在不久的将来测试 Powershell 反向隧道和 Linux/Mono“概念”,并将分享任何结果。
祝你好运,希望这能提供一点帮助。
问候,