Apertura di un tunnel e utilizzo di SSH basato su browser per accedere al dispositivo remoto - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Apertura di un tunnel e utilizzo di SSH basato su browser per accedere al dispositivo remoto

È possibile utilizzare il metodo di configurazione rapida o manuale per creare un tunnel. In questo tutorial viene illustrato come aprire un tunnel utilizzando il metodo di configurazione rapida e utilizzare l'SSH basato su browser per connettersi al dispositivo remoto. Per un esempio che mostra come aprire un tunnel utilizzando il metodo di configurazione manuale, consulta Apertura di un tunnel utilizzando la configurazione manuale e connessione al dispositivo remoto.

Utilizzando il metodo di configurazione rapida, è possibile creare un nuovo tunnel con configurazioni predefinite che è possibile modificare. Un proxy locale basato sul Web viene configurato automaticamente e il token di accesso viene distribuito automaticamente al dispositivo di destinazione remoto mediante MQTT. Dopo aver creato un tunnel, è possibile iniziare a interagire con il dispositivo remoto utilizzando un'interfaccia a riga di comando all'interno della console.

Con il metodo di configurazione rapida, è necessario utilizzare SSH come il servizio di destinazione per accedere al dispositivo remoto. Per ulteriori informazioni sui diversi metodi di configurazione, consulta Metodi di configurazione del tunnel.

Prerequisiti per il metodo di configurazione rapida

  • I firewall dietro cui si trova il dispositivo remoto devono consentire il traffico in uscita sulla porta 443. Il tunnel creato utilizzerà questa porta per connettersi al dispositivo remoto.

  • Sul dispositivo remoto è in esecuzione un agente per dispositivi IoT (vediSnippet dell'agente IoT) che si connette al gateway del AWS IoT dispositivo ed è configurato con un abbonamento tematico MQTT. Per ulteriori informazioni, consulta Connettere un dispositivo al gateway del AWS IoT dispositivo.

  • È necessario disporre di un daemon SSH in esecuzione sul dispositivo remoto.

Apertura di un tunnel

È possibile aprire un tunnel sicuro utilizzando il AWS Management Console, l' AWS IoT API Reference o il AWS CLI. Facoltativamente, è possibile configurare un nome di destinazione, ma non è richiesto per questo tutorial. Se si configura la destinazione, il tunneling sicuro distribuirà automaticamente il token di accesso al dispositivo remoto tramite MQTT. Per ulteriori informazioni, consulta Metodi di creazione di tunnel nella AWS IoT console.

Per aprire un tunnel mediante la console
  1. Vai a Hub dei tunnel della console AWS IoT e scegli Create tunnel (Crea tunnel).

    AWS IoT console che mostra un elenco vuoto di tunnel con opzioni per creare, chiudere o eliminare tunnel.
  2. Per questo tutorial, scegli Quick setup (Configurazione rapida) come metodo di creazione del tunnel, quindi seleziona Next (Avanti).

    Nota

    Se si crea un tunnel sicuro dalla pagina dei dettagli di un oggetto creato in precedenza, è possibile scegliere se creare un nuovo tunnel o utilizzarne uno esistente. Per ulteriori informazioni, consulta Apertura di un tunnel per dispositivo remoto e utilizzo di SSH basato su browser.

    sezione relativa al metodo di configurazione con opzioni per la configurazione rapida tramite SSH o la configurazione manuale, in cui viene illustrata la configurazione rapida che configura automaticamente il proxy e il token di accesso.
  3. Rivedi e conferma i dettagli di configurazione del tunnel. Per creare un tunnel, scegli Confirm and create (Conferma e crea). Se desideri modificare questi dettagli, scegli Previous (Indietro) per tornare alla pagina precedente, quindi conferma e crea il tunnel.

    Nota

    Quando si utilizza la configurazione rapida, il nome del servizio non può essere modificato. È necessario utilizzare SSH come Service (Servizio).

  4. Per creare il tunnel, scegli Done (Fine).

    Per questo tutorial, non è necessario scaricare i token di accesso di origine o destinazione. Questi token possono essere utilizzati una sola volta per connettersi al tunnel. Se il tunnel si disconnette, è possibile generare e inviare nuovi token al dispositivo remoto per riconnettersi al tunnel. Per ulteriori informazioni, consulta Nuovo invio dei token di accesso al tunnel.

    Una finestra di dialogo che mostra i token di accesso all'origine e alla destinazione per creare una connessione tunnel sicura, con istruzioni su come ruotare e inviare nuovamente i token, se necessario.
Per aprire un tunnel mediante l'API

Per aprire un nuovo tunnel, puoi utilizzare l'operazione API. OpenTunnel

Nota

È possibile creare un tunnel utilizzando il metodo di configurazione rapida solo dalla console AWS IoT . Quando utilizzi l' AWS IoT API Reference API o il AWS CLI, utilizzerà il metodo di configurazione manuale. È possibile aprire il tunnel esistente creato in precedenza e quindi modificare il metodo di configurazione del tunnel per utilizzare la configurazione rapida. Per ulteriori informazioni, consulta Apertura di un tunnel esistente e utilizzo di SSH basato su browser.

Di seguito viene illustrato un esempio di come eseguire questa operazione API. Facoltativamente, se si desidera specificare il nome dell'oggetto e il servizio di destinazione, utilizzare il parametro DestinationConfig. Per un esempio che mostra come utilizzare questo parametro, consulta Apertura di un nuovo tunnel per il dispositivo remoto.

aws iotsecuretunneling open-tunnel

L'esecuzione di questo comando crea un nuovo tunnel e fornisce i token di accesso di origine e destinazione.

{ "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>" }

Utilizzo di SSH basato su browser

Dopo aver creato un tunnel utilizzando il metodo di configurazione rapida e dopo che il dispositivo di destinazione si è connesso al tunnel, è possibile accedere al dispositivo remoto utilizzando un SSH basato su browser. Utilizzando l'SSH basato su browser, è possibile comunicare direttamente con il dispositivo remoto inserendo i comandi in un'interfaccia a riga di comando contestuale all'interno della console. Questa funzionalità semplifica l'interazione con il dispositivo remoto perché non è necessario aprire un terminale all'esterno della console o configurare il proxy locale.

Per utilizzare l'SSH basato su browser
  1. Passa a Hub dei tunnel della console AWS IoT e scegli il tunnel creato per visualizzare i relativi dettagli.

  2. Espandi la sezione Secure Shell (SSH) e scegli Connect (Connetti).

  3. Scegli se eseguire l'autenticazione alla connessione SSH fornendo nome utente e password oppure, per un'autenticazione più sicura, utilizzare la chiave privata del tuo dispositivo. Se esegui l'autenticazione utilizzando la chiave privata, tieni presente che solo le chiavi RSA in formato PEM (256 e 512) funzionano con la console SSH. AWS IoT Secure Tunneling

    • Per connetterti utilizzando il nome utente e la password, scegli Use password (Usa password). Puoi quindi inserire nome utente e password e iniziare a utilizzare la CLI integrata nel browser.

    • Per connetterti utilizzando la chiave privata del dispositivo di destinazione, scegli Use private key (Usa chiave privata). Specifica il nome utente e carica il file della chiave privata del dispositivo, quindi scegli Connect (Connetti) per iniziare a utilizzare la CLI integrata nel browser.

      Finestra di dialogo del modulo per connettersi tramite la CLI del browser con chiave privata, che mostra un campo nome utente e un'opzione per scegliere o utilizzare un file di chiave privata preselezionato.

Dopo aver effettuato l'autenticazione alla connessione SSH, puoi iniziare rapidamente a inserire i comandi e interagire con il dispositivo utilizzando la CLI del browser, poiché il proxy locale è già stato configurato automaticamente.

Frammento di codice che mostra gli hook React per la gestione dello stato e delle preferenze in un'applicazione. JavaScript

Se la CLI del browser rimane aperta dopo la durata del tunnel, potrebbe scadere, causando la disconnessione dell'interfaccia a riga di comando. Puoi duplicare il tunnel e avviare un'altra sessione per interagire con il dispositivo remoto all'interno della console stessa.

Risoluzione dei problemi relativi all'utilizzo di SSH basato su browser

Di seguito viene illustrato come risolvere alcuni problemi che si potrebbero verificare quando si utilizza l'SSH basato su browser.

  • Al posto dell'interfaccia a riga di comando viene visualizzato un errore

    È possibile che l'errore venga visualizzato perché il dispositivo di destinazione si è disconnesso. È possibile scegliere Generate new access tokens (Genera nuovi token di accesso) per generare nuovi token di accesso e inviarli al dispositivo remoto utilizzando MQTT. I nuovi token possono essere usati per riconnettersi al tunnel. La riconnessione al tunnel cancella la cronologia e aggiorna la sessione della riga di comando.

  • Un errore di disconnessione del tunnel viene visualizzato durante l'autenticazione tramite chiave privata

    Questo errore potrebbe essere visualizzato perché è possibile che la chiave privata non sia stata accettata dal dispositivo di destinazione. Per risolvere questo errore, controllare il file della chiave privata caricata per l'autenticazione. Se l'errore persiste, controllare i log del dispositivo. È anche possibile provare a riconnettersi al tunnel inviando nuovi token di accesso al dispositivo remoto.

  • Il tunnel è stato chiuso durante l'utilizzo della sessione

    Se il tunnel è stato chiuso perché è rimasto aperto per un periodo di tempo superiore alla durata specificata, è possibile che la sessione della riga di comando venga disconnessa. Un tunnel non può essere riaperto dopo che è stato chiuso. Per riconnettersi, è necessario aprire un altro tunnel al dispositivo.

    È possibile duplicare un tunnel per creare un nuovo tunnel con le stesse configurazioni del tunnel chiuso. È possibile duplicare un tunnel chiuso dalla console. AWS IoT Per duplicare il tunnel, scegliere il tunnel che è stato chiuso per visualizzare i relativi dettagli, quindi selezionare Duplicate tunnel (Duplica tunnel). Specificare la durata del tunnel che si desidera utilizzare, quindi creare il nuovo tunnel.

Pulizia

  • Chiusura del tunnel

    Al termine dell'utilizzo, si consiglia di chiudere il tunnel. Un tunnel può chiudersi anche se è rimasto aperto per un periodo di tempo superiore alla durata del tunnel specificata. Un tunnel non può essere riaperto dopo che è stato chiuso. È ancora possibile duplicare un tunnel scegliendo il tunnel chiuso e quindi selezionando Duplicate tunnel (Duplica tunnel). Specificare la durata del tunnel che si desidera utilizzare, quindi creare il nuovo tunnel.

    • Per chiudere un singolo tunnel o più tunnel dalla console AWS IoT , passa all'Hub dei tunnel, scegli i tunnel che desideri chiudere, quindi seleziona Close tunnel (Chiudi tunnel).

    • Per chiudere uno o più tunnel utilizzando l' AWS IoT API Reference API, utilizza l'CloseTunnelAPI.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
  • Eliminazione del tunnel

    Puoi eliminare definitivamente un tunnel dal tuo Account AWS.

    avvertimento

    Le operazioni di eliminazione sono permanenti e non possono essere annullate.

    • Per eliminare un singolo tunnel o più tunnel dalla console AWS IoT , passa all'Hub dei tunnel, scegli i tunnel che desideri eliminare, quindi seleziona Delete tunnel (Elimina tunnel).

    • Per eliminare uno o più tunnel utilizzando l' AWS IoT API Reference API, utilizza l'CloseTunnelAPI. Quando utilizzi l'API, imposta il flag delete su true.

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