Öffnen Sie einen Tunnel und verwenden Sie browserbasiertes SSH, um auf das Remote-Gerät zuzugreifen - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Öffnen Sie einen Tunnel und verwenden Sie browserbasiertes SSH, um auf das Remote-Gerät zuzugreifen

Sie können die Quick Setup Methode oder die manuelle Einrichtungsmethode verwenden, um einen Tunnel zu erstellen. Dieses Tutorial zeigt, wie Sie einen Tunnel mit der Quick Setup Methode öffnen und das browserbasierte SSH verwenden, um eine Verbindung zum Remote-Gerät herzustellen. Ein Beispiel, das zeigt, wie ein Tunnel mithilfe der manuellen Einrichtungsmethode geöffnet wird, finden Sie unter Öffnen Sie mithilfe der manuellen Einrichtung einen Tunnel und stellen Sie eine Verbindung zum Remote-Gerät her.

Mithilfe der Quick Setup Methode können Sie einen neuen Tunnel mit Standardkonfigurationen erstellen, die bearbeitet werden können. Ein webbasierter lokaler Proxy wird für Sie konfiguriert und das Zugriffstoken wird automatisch über MQTT an Ihr Remote-Zielgerät gesendet. Nachdem Sie einen Tunnel erstellt haben, können Sie über eine Befehlszeilen-Schnittstelle innerhalb der Konsole mit Ihrem Remote-Gerät interagieren.

Bei der Quick Setup Methode müssen Sie SSH als Zieldienst für den Zugriff auf das Remote-Gerät verwenden. Weitere Informationen zu den verschiedenen Einrichtungsmethoden finden Sie unter Methoden zur Tunneleinrichtung.

Voraussetzungen für die Quick Setup Methode

  • Die Firewalls, hinter denen sich das Remote-Gerät befindet, müssen ausgehenden Datenverkehr an Port 443 zulassen. Der Tunnel, den Sie erstellen, verwendet diesen Port, um eine Verbindung zum Remote-Gerät herzustellen.

  • Auf dem Remote-Gerät läuft ein IoT-Geräteagent (sieheIoT-Agent-Snippet), der eine Verbindung zum AWS IoT Gerätegateway herstellt und mit einem MQTT-Themenabonnement konfiguriert ist. Weitere Informationen finden Sie unter Ein Gerät mit dem AWS IoT Geräte-Gateway verbinden.

  • Auf dem Remote-Gerät muss ein SSH-Daemon ausgeführt werden.

Tunnel öffnen

Sie können einen sicheren Tunnel mit dem AWS Management Console, der AWS IoT API-Referenz oder dem öffnen AWS CLI. Sie können optional einen Zielnamen konfigurieren, der für dieses Tutorial jedoch nicht erforderlich ist. Wenn Sie das Ziel konfigurieren, übermittelt Secure Tunneling das Zugriffstoken automatisch mithilfe von MQTT an das Remote-Gerät. Weitere Informationen finden Sie unter Methoden zur Tunnelerstellung in der AWS IoT Konsole.

Um einen Tunnel mit der Konsole zu öffnen,
  1. Gehen Sie zum Tunnel-Hub der AWS IoT -Konsole und wählen Sie Tunnel erstellen.

    AWS IoT Konsole mit einer leeren Liste von Tunneln mit Optionen zum Erstellen, Schließen oder Löschen von Tunneln.
  2. Wählen Sie für dieses Tutorial die Quick Setup Methode zur Tunnelerstellung und wählen Sie dann Weiter.

    Anmerkung

    Wenn Sie auf der Detailseite eines von Ihnen erstellten Objekts einen sicheren Tunnel erstellen, können Sie wählen, ob Sie einen neuen Tunnel erstellen oder einen vorhandenen verwenden möchten. Weitere Informationen finden Sie unter Öffnen Sie einen Tunnel und verwenden Sie browserbasiertes SSH, um auf das Remote-Gerät zuzugreifen.

    Abschnitt zur Einrichtungsmethode mit Optionen für die schnelle Einrichtung mit SSH oder die manuelle Einrichtung, in dem erklärt wird, wie die Schnellinstallation automatisch Proxy und Zugriffstoken konfiguriert.
  3. Überprüfen und bestätigen Sie die Details der Tunnelkonfiguration. Um einen Tunnel zu erstellen, wählen Sie Bestätigen und erstellen. Wenn Sie die Details bearbeiten möchten, wählen Sie Zurück, um zur vorherigen Seite zurückzukehren. Bestätigen Sie dann und erstellen Sie den Tunnel.

    Anmerkung

    Wenn Sie die Quick Setup Methode verwenden, kann der Dienstname nicht bearbeitet werden. Sie müssen SSH als Dienst verwenden.

  4. Um den Tunnel zu erstellen, wählen Sie Fertig.

    Für dieses Tutorial müssen Sie die Quell- oder Zielzugriffstoken nicht herunterladen. Diese Token können nur einmal verwendet werden, um eine Verbindung zum Tunnel herzustellen. Wenn Ihr Tunnel unterbrochen wird, können Sie neue Token generieren und an Ihr Remote-Gerät senden, um die Verbindung zum Tunnel wiederherzustellen. Weitere Informationen finden Sie unter Tunnelzugriffstoken erneut senden.

    Ein Dialogfeld mit Quell- und Zielzugriffstoken zum Herstellen einer sicheren Tunnelverbindung sowie Anweisungen zum Rotieren und erneuten Senden von Token, falls erforderlich.
So öffnen Sie einen Tunnel über die API

Um einen neuen Tunnel zu öffnen, können Sie die OpenTunnelAPI-Operation verwenden.

Anmerkung

Sie können einen Tunnel mit der Quick Setup Methode nur von der AWS IoT -Konsole aus erstellen. Wenn Sie die AWS IoT API-Referenz-API oder die verwenden AWS CLI, wird die manuelle Einrichtungsmethode verwendet. Sie können den vorhandenen Tunnel, den Sie erstellt haben, öffnen und dann die Einrichtungsmethode des Tunnels ändern, um die Quick Setup Methode zu verwenden. Weitere Informationen finden Sie unter Öffnen eines vorhandenen Tunnels und Verwenden von browserbasiertem SSH.

Im Folgenden wird ein Beispiel gezeigt, wie dieser API-Vorgang ausgeführt wird. Wenn Sie optional den Objektnamen und den Zieldienst angeben möchten, verwenden Sie den DestinationConfig-Parameter. Ein Beispiel, das zeigt, wie dieser Parameter verwendet wird, finden Sie unterÖffnen Sie einen neuen Tunnel für das Remote-Gerät.

aws iotsecuretunneling open-tunnel

Wenn Sie diesen Befehl ausführen, wird ein neuer Tunnel erstellt und Sie erhalten die Quell- und Zielzugriffstoken.

{ "tunnelId": "01234567-89ab-0123-4c56-789a01234bcd", "tunnelArn": "arn:aws:iot:us-east-1:123456789012:tunnel/01234567-89ab-0123-4c56-789a01234bcd", "sourceAccessToken": "<SOURCE_ACCESS_TOKEN>", "destinationAccessToken": "<DESTINATION_ACCESS_TOKEN>" }

Verwenden von browserbasiertem SSH

Nachdem Sie mit der Quick Setup Methode einen Tunnel erstellt haben und Ihr Zielgerät eine Verbindung zum Tunnel hergestellt hat, können Sie über ein browserbasiertes SSH auf das Remote-Gerät zugreifen. Mithilfe des browserbasierten SSH können Sie direkt mit dem Remote-Gerät kommunizieren, indem Sie Befehle in eine kontextinterne Befehlszeilen-Schnittstelle in der Konsole eingeben. Diese Funktion erleichtert Ihnen die Interaktion mit dem Remote-Gerät, da Sie kein Terminal außerhalb der Konsole öffnen oder den lokalen Proxy konfigurieren müssen.

Browserbasiertes SSH verwenden
  1. Gehen Sie zum Tunnel-Hub der AWS IoT -Konsole und wählen Sie den von Ihnen erstellten Tunnel aus, um seine Details anzuzeigen.

  2. Erweitern Sie den Abschnitt Secure Shell (SSH) und wählen Sie dann Verbinden.

  3. Wählen Sie aus, ob Sie sich bei der SSH-Verbindung authentifizieren möchten, indem Sie Ihren Benutzernamen und Ihr Passwort angeben, oder ob Sie für eine sicherere Authentifizierung den privaten Schlüssel Ihres Geräts verwenden können. Wenn Sie sich mit dem privaten Schlüssel authentifizieren, können Sie die Schlüsseltypen RSA, DSA, ECDSA (nistp-*) und ED25519 in den Formaten PEM (PKCS #1, PKCS #8) und OpenSSH verwenden.

    • Um mit Ihrem Benutzernamen und Passwort eine Verbindung herzustellen, wählen Sie Passwort verwenden. Sie können dann Ihren Benutzernamen und Ihr Passwort eingeben und das In-Browser-CLI verwenden.

    • Um mit dem privaten Schlüssel Ihres Zielgeräts eine Verbindung herzustellen, wählen Sie Privaten Schlüssel verwenden aus. Geben Sie Ihren Benutzernamen an, laden Sie die private Schlüsseldatei des Geräts hoch und wählen Sie dann Verbinden, um mit der Verwendung des CLI im Browser zu beginnen.

      Formulardialogfeld für die Verbindung über die Browser-CLI mit privatem Schlüssel, das ein Benutzernamenfeld und eine Option zur Auswahl oder Verwendung einer vorausgewählten privaten Schlüsseldatei anzeigt.

Nachdem Sie sich bei der SSH-Verbindung authentifiziert haben, können Sie schnell mit der Eingabe von Befehlen beginnen und über das Browser-CLI mit dem Gerät interagieren, da der lokale Proxy bereits für Sie konfiguriert wurde.

Codeausschnitt, der React-Hooks zur Verwaltung von Status und Einstellungen in einer Anwendung zeigt. JavaScript

Wenn die Browser-CLI nach Ablauf der Tunneldauer geöffnet bleibt, kann es zu einem Timeout kommen, wodurch die Befehlszeilen-Schnittstelle unterbrochen wird. Sie können den Tunnel duplizieren und eine weitere Sitzung starten, um mit dem Remote-Gerät in der Konsole selbst zu interagieren.

Behebung von Problemen bei der Verwendung des browserbasierten SSH

Im Folgenden wird gezeigt, wie Sie einige Probleme beheben können, auf die Sie bei der Verwendung von browserbasiertem SSH stoßen könnten.

  • Anstelle der Befehlszeilen-Schnittstelle wird ein Fehler angezeigt.

    Möglicherweise wird der Fehler angezeigt, weil die Verbindung zu Ihrem Zielgerät unterbrochen wurde. Sie können Neue Zugriffstoken generieren wählen, um neue Zugriffstoken zu generieren und die Token mithilfe von MQTT an Ihr Remote-Gerät zu senden. Die neuen Token können verwendet werden, um die Verbindung zum Tunnel wiederherzustellen. Beim erneuten Herstellen der Verbindung mit dem Tunnel wird der Verlauf gelöscht und die Befehlszeilensitzung aktualisiert.

  • Bei der Authentifizierung mit einem privaten Schlüssel wird ein Fehler angezeigt, dass die Verbindung zum Tunnel unterbrochen wurde

    Möglicherweise wird der Fehler angezeigt, weil Ihr privater Schlüssel vom Zielgerät vielleicht nicht akzeptiert wurde. Um diesen Fehler zu beheben, überprüfen Sie die Datei mit dem privaten Schlüssel, die Sie zur Authentifizierung hochgeladen haben. Wenn Sie immer noch einen Fehler sehen, überprüfen Sie Ihre Geräteprotokolle. Sie können auch versuchen, erneut eine Verbindung zum Tunnel herzustellen, indem Sie neue Zugriffstoken an Ihr Remote-Gerät senden.

  • Ihr Tunnel wurde geschlossen, als Sie die Sitzung verwendet haben

    Wenn Ihr Tunnel geschlossen wurde, weil er länger als die angegebene Dauer geöffnet blieb, wird Ihre Befehlszeilensitzung möglicherweise unterbrochen. Ein Tunnel kann nicht wieder geöffnet werden, wenn er einmal geschlossen wurde. Um die Verbindung wieder herzustellen, müssen Sie einen weiteren Tunnel zum Gerät öffnen.

    Sie können einen Tunnel duplizieren, um einen neuen Tunnel mit denselben Konfigurationen wie der geschlossene Tunnel zu erstellen. Sie können einen geschlossenen Tunnel von der Konsole aus duplizieren. AWS IoT Um den Tunnel zu duplizieren, wählen Sie den Tunnel aus, der geschlossen wurde, um seine Details anzuzeigen, und wählen Sie dann Tunnel duplizieren aus. Geben Sie die Tunneldauer an, die Sie verwenden möchten, und erstellen Sie dann den neuen Tunnel.

Bereinigen

  • Tunnel schließen

    Wir empfehlen, den Tunnel zu schließen, wenn Sie ihn nicht mehr verwenden. Ein Tunnel kann auch geschlossen werden, wenn er länger als die angegebene Tunneldauer geöffnet blieb. Ein Tunnel kann nicht wieder geöffnet werden, wenn er einmal geschlossen wurde. Sie können einen Tunnel trotzdem duplizieren, indem Sie den geschlossenen Tunnel und dann Tunnel duplizieren auswählen. Geben Sie die Tunneldauer an, die Sie verwenden möchten, und erstellen Sie dann den neuen Tunnel.

    • Um einen einzelnen Tunnel oder mehrere Tunnel von der AWS IoT -Konsole aus zu schließen, wechseln Sie zum Tunnel-Hub, wählen Sie die Tunnel aus, die Sie schließen möchten, und wählen Sie dann Tunnel schließen aus.

    • Verwenden Sie die API, um einen einzelnen Tunnel oder mehrere Tunnel mithilfe der AWS IoT CloseTunnelAPI-Referenz-API zu schließen.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
  • Löschen eines Tunnels

    Sie können einen Tunnel dauerhaft aus Ihrem löschen AWS-Konto.

    Warnung

    Dieser Löschvorgang ist dauerhaft und kann nicht rückgängig gemacht werden.

    • Um einen einzelnen Tunnel oder mehrere Tunnel von der AWS IoT -Konsole aus zu löschen, wechseln Sie zum Tunnel-Hub, wählen Sie die Tunnel aus, die Sie löschen möchten, und wählen Sie dann Tunnel löschen aus.

    • Verwenden Sie die API, um einen einzelnen Tunnel oder mehrere Tunnel mithilfe der AWS IoT CloseTunnelAPI-Referenz-API zu löschen. Wenn Sie die API verwenden, setzen Sie das delete-Flag auf true.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd" --delete true