Abra um túnel e use o SSH baseado em navegador para acessar o dispositivo remoto - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Abra um túnel e use o SSH baseado em navegador para acessar o dispositivo remoto

Você pode usar a configuração rápida ou o método de configuração manual para criar um túnel. Este tutorial mostra como abrir um túnel usando o método de configuração rápida e usar o SSH baseado em navegador para se conectar ao dispositivo remoto. Para obter um exemplo que mostra como abrir um túnel usando o método de configuração manual, consulte Abra um túnel usando a configuração manual e conecte-se ao dispositivo remoto.

Usando o método de configuração rápida, você pode criar um novo túnel com configurações padrão que podem ser editadas. Um proxy local baseado na web é configurado para você e o token de acesso é entregue automaticamente ao seu dispositivo de destino remoto usando o MQTT. Depois de criar um túnel, você pode começar a interagir com seu dispositivo remoto usando uma interface de linha de comando dentro do console.

Com o método de configuração rápida, você deve usar o SSH como serviço de destino para acessar o dispositivo remoto. Para obter informações sobre os diferentes métodos de configuração, consulte Métodos de configuração de túnel.

Pré-requisitos para o método de configuração rápida

  • Os firewalls que protegem o dispositivo remoto devem permitir o tráfego de saída na porta 443. O túnel que você criar usará essa porta para se conectar ao dispositivo remoto.

  • Você tem um agente de dispositivo IoT (consulteSnippet de atendente de IoT) em execução no dispositivo remoto que se conecta ao gateway do AWS IoT dispositivo e está configurado com uma assinatura de tópico do MQTT. Para obter mais informações, consulte conectar um dispositivo ao gateway do AWS IoT dispositivo.

  • É necessário ter um daemon SSH em execução no dispositivo remoto.

Abrir um túnel

Você pode abrir um túnel seguro usando a AWS Management Console, a Referência da AWS IoT API ou AWS CLI a. Opcionalmente, você pode configurar um nome de destino, mas isso não é necessário para este tutorial. Se você configurar o destino, o encapsulamento seguro entregará automaticamente o token de acesso ao dispositivo remoto usando o MQTT. Para ter mais informações, consulte Métodos de criação de túneis no AWS IoT console.

Abrir um túnel usando o console
  1. Vá para o hub de túneis do AWS IoT console e selecione Criar túnel.

    AWS IoT console mostrando uma lista vazia de túneis com opções para criar, fechar ou excluir túneis.
  2. Para este tutorial, selecione Configuração rápida como método de criação de túneis e, em seguida, selecione Próximo.

    nota

    Se você criar um túnel seguro a partir da página de detalhes de algo que você criou, você pode escolher entre criar um novo túnel ou usar um existente. Para ter mais informações, consulte Abra um túnel para dispositivo remoto e use SSH baseado em navegador.

    A seção do método de configuração com opções para configuração rápida usando SSH ou configuração manual, explicando a configuração rápida, configura automaticamente o proxy e o token de acesso.
  3. Revise e confirme os detalhes da configuração do túnel. Para criar um túnel, escolha Confirmar e criar. Se você quiser editar esses detalhes, escolha Anterior para voltar à página anterior e, em seguida, confirme e crie o túnel.

    nota

    Ao usar a configuração rápida, o nome do serviço não pode ser editado. Você deve usar o SSH como o Serviço.

  4. Para criar o túnel, selecione Concluído.

    Neste tutorial, não é necessário fazer download dos tokens de acesso de origem ou de destino. Esses tokens só podem ser usados uma vez para se conectar ao túnel. Se o túnel for desconectado, você poderá gerar e enviar novos tokens para o dispositivo remoto para se reconectar ao túnel. Para ter mais informações, consulte Reenviar tokens de acesso ao túnel.

    Uma caixa de diálogo mostrando tokens de acesso de origem e destino para criar uma conexão de túnel segura, com instruções sobre como girar e reenviar tokens, se necessário.
Abrir um túnel usando a API

Para abrir um novo túnel, você pode usar a operação OpenTunnelda API.

nota

Você pode criar um túnel usando o método de configuração rápida somente a partir do AWS IoT console. Quando você usa a AWS IoT API de referência da API ou a AWS CLI, ela usa o método de configuração manual. Você pode abrir o túnel existente que você criou e, em seguida, alterar o método de configuração do túnel para usar a configuração rápida. Para ter mais informações, consulte Abra um túnel existente e use o SSH baseado em navegador.

Mais adiante, veja um exemplo de como executar essa operação da API. Opcionalmente, se você quiser especificar o nome do item e o serviço de destino, use o parâmetro DestinationConfig. Para obter um exemplo que mostra como usar esse parâmetro, consulte Abra um novo túnel para o dispositivo remoto.

aws iotsecuretunneling open-tunnel

A execução desse comando cria um novo túnel e fornece os tokens de acesso de origem e destino.

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

Usando o SSH baseado em navegador

Depois de criar um túnel usando o método de configuração rápida e seu dispositivo de destino se conectar ao túnel, você poderá acessar o dispositivo remoto usando um SSH baseado em navegador. Usando o SSH baseado em navegador, você pode se comunicar diretamente com o dispositivo remoto inserindo comandos em uma interface de linha de comando contextualizada dentro do console. Este atributo facilita a interação com o dispositivo remoto porque você não precisa abrir um terminal fora do console ou configurar o proxy local.

Como usar o SSH baseado em navegador
  1. Acesse o Hub túneis do AWS IoT console escolha o túnel que você criou para visualizar seus detalhes.

  2. Expanda a seção Secure Shell (SSH) e selecione Conectar.

  3. Escolha se você deseja se autenticar na conexão SSH fornecendo seu nome de usuário e senha ou, para uma autenticação mais segura, você pode usar a chave privada do seu dispositivo. Se você estiver se autenticando usando a chave privada, poderá usar os tipos de chave RSA, DSA, ECDSA (nistp-*) e ED25519, nos formatos PEM (PKCS#1, PKCS#8) e OpenSSH.

    • Para se conectar usando seu nome de usuário e senha, selecione Usar senha. Em seguida, você pode inserir seu nome de usuário e senha e começar a usar a CLI do navegador.

    • Para se conectar usando a chave privada do seu dispositivo de destino, selecione Usar chave privada. Especifique seu nome de usuário e faça o upload do arquivo de chave privada do dispositivo e, em seguida, escolha Conectar para começar a usar a CLI no navegador.

      Caixa de diálogo do formulário para conexão via CLI do navegador com chave privada, mostrando um campo de nome de usuário e uma opção para escolher ou usar um arquivo de chave privada pré-selecionado.

Depois de se autenticar na conexão SSH, você pode começar rapidamente a inserir comandos e interagir com o dispositivo usando a CLI do navegador, pois o proxy local já foi configurado para você.

Trecho de código mostrando ganchos do React para gerenciar o estado e as preferências em um aplicativo. JavaScript

Se a CLI do navegador permanecer aberta após a duração do túnel, ela poderá expirar, fazendo com que a interface da linha de comando seja desconectada. Você pode duplicar o túnel e iniciar outra sessão para interagir com o dispositivo remoto dentro do próprio console.

Solução de problemas ao usar o SSH baseado em navegador

A seguir, mostramos como solucionar alguns problemas que você pode encontrar ao usar o SSH baseado em navegador.

  • Você vê um erro em vez da interface de linha de comando

    Talvez você esteja vendo o erro porque seu dispositivo de destino foi desconectado. Você pode escolher Gerar novos tokens de acesso para gerar novos tokens de acesso e enviar os tokens para seu dispositivo remoto usando o MQTT. Os novos tokens podem ser usados para se reconectar ao túnel. A reconexão ao túnel limpa o histórico e atualiza a sessão da linha de comando.

  • Você vê um erro de túnel desconectado ao autenticar usando chave privada

    Talvez você esteja vendo o erro porque sua chave privada pode não ter sido aceita pelo dispositivo de destino. Para solucionar esse erro, verifique o arquivo de chave privada que você carregou para autenticação. Se você ainda vir um erro, verifique os logs do seu dispositivo. Você também pode tentar se reconectar ao túnel enviando novos tokens de acesso ao seu dispositivo remoto.

  • Seu túnel foi fechado ao usar a sessão

    Se seu túnel foi fechado porque permaneceu aberto por mais do que a duração especificada, sua sessão de linha de comando pode ser desconectada. Um túnel não pode ser reaberto depois de fechado. Para se reconectar, você deve abrir outro túnel para o dispositivo.

    Você pode duplicar um túnel para criar um novo túnel com as mesmas configurações do túnel fechado. Você pode duplicar um túnel fechado a partir do AWS IoT console. Para duplicar o túnel, escolha o túnel que foi fechado para ver seus detalhes e, em seguida, escolha Duplicar túnel. Especifique a duração do túnel que você deseja usar e, em seguida, crie o novo túnel.

Liberar

  • Fechar túnel

    Recomendamos que você feche o túnel depois de terminar de usá-lo. Um túnel também pode ficar fechado se permanecer aberto por mais tempo do que a duração especificada do túnel. Um túnel não pode ser reaberto depois de fechado. Você ainda pode duplicar um túnel escolhendo o túnel fechado e, em seguida, escolhendo Duplicar túnel. Especifique a duração do túnel que você deseja usar e, em seguida, crie o novo túnel.

    • Para fechar um túnel individual ou vários túneis a partir do AWS IoT console, acesse o Hub de túneis, escolha os túneis que você deseja fechar e escolha Fechar túnel.

    • Para fechar um túnel individual ou vários túneis usando a AWS IoT API de referência da API, use a CloseTunnelAPI.

      aws iotsecuretunneling close-tunnel \ --tunnel-id "01234567-89ab-0123-4c56-789a01234bcd"
  • Excluir túnel

    Você pode excluir um túnel permanentemente do seu Conta da AWS.

    Atenção

    Uma ação de exclusão é permanente e não pode ser desfeita.

    • Para excluir um túnel individual ou vários túneis a partir do AWS IoT console, acesse o Hub de túneis, escolha os túneis que você deseja excluir e escolha Excluir túnel.

    • Para excluir um túnel individual ou vários túneis usando a AWS IoT API de referência da API, use a CloseTunnelAPI. Ao usar a API, defina o sinalizador delete como true.

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