Erstellen Sie einen Reverse-SSH-Tunnel aus einem Windows 10-IoT-Core-Gerät

586
Lucas Niewohner

Ich habe eine ziemlich offene Frage zum Erstellen eines SSH-Reverse-Tunnel-Proxys aus einem Raspberry Pi 3 mit Windows 10 IoT Core.

Meine Situation ist nicht enorm komplex - mein Internet (was übrigens nervig ist) verwendet NAT und hat keine öffentlich zugängliche IP-Adresse, über die Ports weitergeleitet werden könnten. Ich brauche eine Möglichkeit, meinen Raspberry Pi 3 über SSH über einen Reverse Tunnel Proxy mit der Außenwelt zu verbinden. Auf einem Nicht-Windows 10-IoT-Core-Gerät wäre das alles nicht so kompliziert (nur ein gut geformter SSH-Terminalbefehl und der Boom, wir sind im Geschäft). Nach mehreren Versuchen, einen Reverse-Tunnel von meinem Gerät aus zu erstellen, bin ich jedoch mit leeren Händen gekommen.

Für den Anfang enthält Windows 10 IoT Core keine SSH-Software. Soweit ich informiert bin, ist es nicht möglich, PuTTY oder OpenSSH auf dem minimierten Betriebssystem zu installieren. Korrigieren Sie mich, wenn ich falsch liege - es wäre eine sehr bequeme Lösung, wenn ich nur etwas Software installieren müsste. Ich habe eine alternative Methode in Betracht gezogen, bei der eine benutzerdefinierte Hintergrundaufgabe (in UWP) erstellt wurde, die eine SSH-Bibliothek (ich fand SSH.NET) zum Erstellen eines Tunnels verwendete - aber auch hier war ich überrascht. Vielleicht ist es tatsächlich möglich, diese Methode zum Erstellen des Tunnels zu verwenden. Ich habe sehr wenig Erfahrung mit dieser Art von Sachen, und es ist durchaus möglich, dass ich einige Features vermisst habe, die dies alles möglich machen.

Aufgrund meines erheblichen Mangels an Erfahrung in dieser Kategorie konnte ich keine dieser Methoden erfolgreich abschließen, und bisher war ich nicht in der Lage, eine andere Alternative zu finden, weshalb ich diese Frage aufgreife bis zur Welt. Ich verstehe, dass diese Frage wahrscheinlich subjektiv ist (wahrscheinlich gibt es eine ganze Reihe von Methoden, um diese Aufgabe zu erledigen), aber im Moment scheint im Internet nichts zu existieren, um sie zu beantworten.

Vielen Dank für alle Lösungen, Lucas Niewohner

0

1 Antwort auf die Frage

0
Bder

Ich bin hier in der gleichen Position, eine ziemlich ernste Notwendigkeit für einen umgekehrten SSH-Tunnel von einem Windows IoT Core-Gerät. Soweit ich weiß, gibt es bisher nur SSH-Server-Unterstützung in IoT Core.

Eine Alternative, die vielleicht funktionieren - ich habe noch dies zu testen - ist Powershell zu verwenden, um einen Reverse - Tunnel, ähnlich wie die Einrichtung zum Beispiel baut hier . Theoretisch sollte es möglich sein, ein Skript als Task mit privilegierten Rechten zu konfigurieren, um die erforderliche Funktionalität zu erreichen.

In Bezug auf die Remoteverwaltung scheint Microsoft Sie in Richtung einer entweder auf OMA MDM basierenden Lösung (z. B. Microsoft Intune oder SCCM) oder einer Azure IoT Hub-basierten Lösung (wie hier beschrieben ) zu bewegen . Ich konnte diese Methode mit mäßiger Begeisterung einsetzen, um die Software und ein Teil der Konfiguration des RPi aus der Ferne zu aktualisieren. Sie benötigen jedoch eine Art TPM (oder verwenden Sie die simulierte Software-Variante, die in einem in der Produktion entwickelten IoT-Core-Image nicht verfügbar zu sein scheint).

Wenn Sie für IoT Core die Verwendung einer auf C # basierenden benutzerdefinierten Anwendung benötigen (wie es für mich der Fall ist), könnte es eine andere unorthodoxe Methode sein, eine Linux-Distribution mit Mono zu verwenden und dann die bewährte Methode eines umgekehrten SSH für "classis" zu verwenden Tunnel.

Ich plane, die beiden Powershell-Reverse-Tunnel- und Linux / Mono-Konzepte in naher Zukunft zu testen, und werde bis dahin alle Ergebnisse teilen.

Viel Glück, hoffe das hilft ein bisschen.

Grüße,