Acessando a Raspberry Pi remotamente: SSH e VNC

Font Size

Diversos projetos que fazem uso de conexão de rede, como servidores de arquivos, bots, sistemas de vigilância e servidores de jogos, necessitam de uma maneira fácil e prática de configuração das máquinas que as hospedam. Por exemplo, imagine que você precisasse se deslocar fisicamente toda vez que você necessitasse fazer a menor das configurações, por exemplo adicionar ou remover um novo usuário que pode acessar os filmes da pasta de downloads compartilhada da sua casa.

Felizmente nós podemos facilitar essa e outras tarefas usando protocolos de controle remoto. A ideia geral por trás desses protocolos é um mecanismo que permite acessar e controlar uma interface de usuário, seja ela de prompt de comando ou gráfica, aonde simulamos estar acessando diretamente a máquina em questão.

No caso da Raspberry Pi a necessidade por esses tipos de ferramentas de controle é ainda mais latente se imaginarmos a quantidade de aplicações remotas que podemos fazer com essa placa, principalmente no contexto de Internet das Coisas. Assim, neste tutorial Acessando a Raspberry Pi remotamente: SSH e VNC aprenderemos um pouco da teoria e da prática por trás de duas soluções de controle remoto mais comuns para Raspberrys.

Materias necessários

Primeiramente destacamos os componentes necessários para acompanhar esse projeto: uma Raspberry Pi, uma fonte de 5V/3A e um Cartão SD. Por sorte você encontra aqui na Autocore Robótica um Kit Completo com a versão de 4GB, que contém todo o básico além de cabo HDMI e case com refrigeração.

Preparação inicial: Raspberry Pi OS

Nós veremos nesta seção como instalar um sistema operacional na Raspberry Pi. Usaremos o Raspberry Pi OS, sistema oficial desenvolvido e mantido pela Raspberry Pi Foundation (grupo responsável pela criação e atualização da placa), que vem em três versões:

  1. Desktop e software recomendados: a versão mais completa do sistema e conta com ambiente gráfico e pacote quase completo de softwares pré-instalados, sendo assim a versão mais recomendada para iniciantes.
  2. Apenas com desktop: a versão “meio-termo” do sistema e conta com ambiente gráfico e apenas um subconjunto de programas considerados essenciais.
  3. Versão Lite: a versão mais econômica e leve, conta apenas com ambiente de linha de comando e instalação mínima de programas.

Usaremos a primeira versão, Raspberry Pi OS com desktop e software recomendados, pois é a mais completa e já contará com todos os programas necessários do lado da Raspberry Pi. Além disso, se você estiver explorando a placa pela primeira vez, você terá configurado o ambiente mais confortável não só para esse projeto, mas qualquer outro que te interessar.

Para baixar a imagem do sistema, acesse este link, desça até a seção Raspberry Pi OS e clique em Download na versão Raspberry Pi OS with desktop and recommended software. Da mesma forma se você preferir fazer o download via Torrent, basta clicar no link Download torrent.

 

Download da imagem do Raspberry Pi OS

 

Gravando imagem no Cartão SD

Recomendamos dois programas para gravação de imagens em Cartão SD: Win32DiskImager e balenaEtcher, os quais possuem funcionamento semelhante: selecione o arquivo da imagem, escolha a unidade correta do Cartão SD e inicie a gravação. Deixamos a seguir uma descrição dos dois para que você escolha aquele que mais se adequar ao seu gosto.

O Win32DiskImager é o mais simples das duas opções. Sua interface oferece apenas as opções que precisamos: selecionar qual imagem gravar, qual unidade deve ser gravada e inicar gravação, além da função opcional de verificar a integridade da gravação. Sua única desvantagem é que ele não sabe trabalhar com arquivos compactados, como é o caso da imagem que baixamos no passo anterior. Portanto, você precisará retirar o arquivo de imagem primeiro usando um programa como 7Zip e depois usar o Win32DiskImager.

 

Instruções do Win32DiskImager

 

O balenaEtcher é tão simples quanto a opção anterior, mas possui uma interface gráfica mais amigável e, diferente do Win32DiskImager, não é necessário remover a imagem do arquivo compactado antes. Esse é o programa recomendado se você for iniciante.

 

Tela do balenaEtcher

Uma vez que você gravou a imagem do Raspberry Pi OS no seu Cartão SD, remova-o do computador, insira-o na Raspberry e a ligue; a primeira inicialização é a mais longa pois o sistema fará as configurações iniciais, principalmente a expansão do Cartão para uso total do espaço.

Conectando à rede

Nossa Raspberry precisa estar conectada à rede para que possamos encontrá-la e eventualmente controla-la. Portanto, o primeiro passo a se executar assim que a placa estiver ligada e pronta para uso é garantir que você está conectado à rede.

Se ela estiver conectada via cabo ethernet você não precisará fazer mais nenhuma configuração, mas apenas por garantia recomenda-se que abra o navegador padrão do sistema (Chromium) e tente acessar uma página qualquer. Se tudo correr bem você pode ir para o passo seguinte.

Caso você optar por conectar a sua Raspberry via rede sem-fio a configuração é tão simples quanto em qualquer outro sistema. Acesse o menu de conexão WiFi localizado na barra no canto superior esquerdo, escolha a rede que se quer conectar e entre com a senha.

Ante de continuarmos, uma observação sobre conexões antes de prosseguirmos: conexões via cabo ethernet são mais rápidas e estáveis que aquelas via WiFi. Tenha isso em mente enquanto usar SSH e VNC. Em muitos casos a diferença é tão pequena que se torna imperceptível, mas dependendo do seu projeto você pode querer refletir entre o balanço entre essas duas opções de conexão.

Habilitando SSH e VNC no Raspberry PI OS

Precisamos fazer uma última configuração em nossa Raspberry antes de falarmos sobre a teoria por trás desses duas formas de conexão e como usá-las de fato. Vamos habilitar o sistema para receber conexões desses tipos.

Com a Raspberry ligada e pronta para uso, navegue até o Menu Principal (Ícone de framboesa no canto superior esquerdo) > Preferences > Raspberry Pi Configuration > Interfaces. Clique em Enable nas opções SSH e VNC tal como na imagem a seguir. Depois, aperte em OK e reinicie o sistema.

 

Interface de configuração de conexões do Raspberry Pi OS

Pronto! Agora podemos seguir com a discussão sobre SSH e VNC e, finalmente, ver como usá-los.

O que é SSH?

SSH (Secure Shell) é um protocolo de conexão de rede criptografado que permite um computador controlar um segundo computador de maneira segura. Podemos entender melhor como o SHH funciona se detalharmos os termos principais da definição:

As definições acima nos ajudarão a entender também o VNC mais a frente.

O SSH é uma das formas mais usadas para controle e gerencia remota de sistemas. Por ser um protocolo e não uma solução particular, é possível estabelecer conexões entre diferentes sistemas operacionais. Por exemplo, você pode usar um cliente SSH (programa que implementa o protocolo) instalado no Windows e se conectar com uma máquina Linux, ou vice-versa.

Agora que entendemos o que é o SSH, é importante desfazermos um equívoco bastante comum. É normal chamarmos de SSH os programas que permitem a conexão remota entre dois computadores. Essa afirmação está errada: SSH é o protocolo de comunicação, enquanto que os programas são clientes que implementam o protocolo. Existem vários desses programas, sendo o Putty o mais conhecido de todos e aquele que sugerimos usar se você estiver no sistema operacional Windows.

Instalando o Putty

Como já mencionado, o Putty é um cliente SSH. Uma de suas características mais atrativas é que esse programa é multiplataforma, ou seja, existem versões para vários sistemas. Este tutorial abordará a conexão entre uma máquina Windows 10 usando Putty e a Raspberry Pi. Para baixar o Putty, acesse a página de download do programa e escolha a versão adequada ao seu sistema.

Usando o Putty

Abra o Putty a partir do Menu Iniciar. Uma vez com ele ligado você deve encontrar uma janela semelhante a da imagem a seguir. No campo Host Name (or IP address) insira raspberrypi, depois clique em Open.

 

Janela padrão do Putty

 

A conexão deve ser criada rapidamente. Uma janela indiciará que esta é a primeira vez conectando à placa; cliquem em Accept.

 

Aviso de primeira conexão SSH entre Putty e Raspberry

Uma janela com um prompt de comando surgirá com a mensagem login as:. As credencias padrão são:

Usuário: pi
Senha: raspberry

 

Primeira conexão com Putty

 

Parabéns! Você conseguiu se conectar com SSH com sucesso usando Putty! Agora você tem acesso total ao terminal de usuário da sua Raspberry, podendo efetuar várias tarefas de controle e gerencia do sistema.

Usar SSH é uma maneira bastante amigável de aprender o terminal Linux se você ainda for iniciante. É bastante confortável se conectar remotamente à Raspberry enquanto navega e explora cursos e materiais de estudo, tudo isso do seu computador do dia-a-dia.

Primeira tarefa com SSH: mudar a senha padrão

É recomendado pelo próprio sistema operacional que você modifique o quanto antes a senha padrão da sua Raspberry. O motivo é bem simples de entender: todos os sistemas Raspberry Pi OS saem com a mesma senha padrão e, em muitos casos (como no seu), a plaquina é configurada para uso remoto, por exemplo via SSH. Portanto é uma grande falha de segurança deixar a sua placa exposta à rede com uma senha conhecida globalmente.

Por sorte o procedimento de mudança é fácil: bastar usar o comando passwd e seguir as instruções (inserir senha atual, inserir nova senha, repetir nova senha). Lembre-se de usar a nova senha daqui por diante, inclusive em futuras novas conexões SSH.

BÔNUS: E se o Putty não encontrar a minha Raspberry?

O método usado acima para conexão usou o que chamamos de hostname; um apelido que o dispositivo diz ter para a rede, assim não precisamos decorar o endereço IP que ele recebeu. A ideia por trás do conceito de hostname é bastante semelhante, portanto, aos endereços Web (é muito mais fácil decorar www.google.com do que 148.132.67.4, ou algo do tipo).

Entretanto, alguma configuração do seu roteador pode impedir o uso de hostnames dentro da rede local. Não se preocupe, pois ainda podemos nos conectar à Raspberry através do seu endereço IP completo. Mas para isso precisamos primeiro descobri-lo.

Existem várias formas de vasculhar a rede local à procura dos IPs de cada dispositivo conectado. Abaixo eu cito algumas:

A imagem abaixo mostra o uso das três primeiras soluções citadas. Aqui eu destaco a minha Raspberry como sendo aquela com hostname MEYE-XXXXXXXX, pois eu estava experimentando com outro sistema operacional; no seu caso isso pode mudar. Note que em todas as ferramentas nós encontramos o mesmo IP (no meu caso 192.168.15.5), como não podia ser diferente. De posse do endereço, a única mudança no passo de conexão do Putty é inseri-lo ao invês do hostname. A conexão deve se estabelecer sem problemas.

 

Diferentes programas vasculhadores de IP

 

Note que você poderá precisar repetir esse procediemento de busca por IP algumas vezes, já que o seu roteador pode atribuir um endereço diferente aos dispositivos de tempos em tempos!

O que é VNC?

VNC (Virtual Network Computing) é um sistema de compartilhamento de desktop que permite que um computador controle o ambiente gráfico de um outro computador a partir do envio de comandos de teclado e mouse. O controlador envia o estado do seu teclado e mouse via rede para o computador controlado, que por sua vez interpreta esses comandos como se vinhessem de periféricos conectados localmente e responde enviando a “imagem” atual do sistema, que é mostrada no controlador. Em outras palavras, é como se conectássemos via rede o nosso teclado, mouse e monitor a um computador diferente.

Os conceitos teóricos de conexão, protocolo e rede que vimos com o SSH se aplicam aqui também, como não podia ser diferente. O VNC é, portanto, outra forma de efetuar conexões remotas, dessa vez com a facilidade de não termos apenas acesso a um terminal de comandos de texto, mas acesso completo à interface gráfica do sistema.

VNC Viewer: o cliente VNC escolhido

Tal como anteriormente com o SSH, o protocolo de conexão pode ser implementado por diferente programas em diferentes sistemas. No caso do VNC optaremos por usar o cliente VNC Viewer para conexão e controle remoto da Raspberry, programa recomendado pela própria Raspberry Pi Foundation. Outros clientes também podem ser experimentados, como o TightVNC e o TeamViewer, e deixamos à curiosidade do leitor de brincar com eles depois.

O download do VNC Viewer pode ser efetuado neste link, bastando apenas escolher a versão que se adequada ao seu sistema operacional; neste tutorial usaremos a versão para Windows. A instalação é simples e intuitiva, basta deixar as opções padrão e estaremos prontos para usar o programa.

Configurações VNC do lado da Raspberry

Se você tiver habilitade o serviço VNC como vimos em um dos primeiros passos deste tutorial e logo após reiniciado a Raspberry, um ícone com a logo VNC surgirá na barra de tarefas no canto superior direito, próximo ao relógio e conexões de rede. Clicando nesse ícone uma janela como a da figura abaixo aparecerá.

 

Janela de informações VNC do Raspberry PI OS

A janela de informações mostra as informações necessárias para realizar uma conexão: o endereço de IP atual da Raspberry (no meu caso era 192.168.15.10, mas a sua provavelmente será diferente), além das informações de Checagem de Identidade (Identity check): a assinatura única e a frase de segurança. Essas informações também serão diferentes na sua Raspberry. Você não precisará digitar nenhuma dessas duas informações de checagem, apenas decorá-las (de preferência apenas a frase, que é mais fácil). Essas informações aparecerão na janela de conexão do cliente à título de confirmação (por isso o nome Checagem de Identidade).

Configurações do lado do VNC Viewer

A seguir, e de posse do IP (ou hostname) da Raspberry, inicie o VNC Viewer a partir do Menu Iniciar. A janela que surgirá será semelhante a da imagem a seguir. Inisira o IP no campo de texto no topo da janela e aperte Enter.

 

Tela de conexão do VNC Viewer

Se o VNC Viewer encontrar a Raspberry e esta estiver com o serviço VNC devidamente habilitado, uma janela semelhante a da imagem abaixo surgirá. Aqui você deve inserir as informações de usuário e senha e conferir a Checagem de Identidade; note que no meu caso elas conferem perfeitamente. Clique em Ok e aguarde a conexão ser estabelecida.

 

Primeira conexão usando VNC Viewer

 

Se tudo correr bem, uma janela surgirá com o desktop da sua Raspberry completamente acessível. Pronto, você configurou e aprendeu a usar o básico do VNC!

 

Conexão VNC estabelecida entre cliente Windows e servidor Raspberry

Demonstração!

 

 

Considerações finais

Neste tutorial, falamos um pouco sobre SSH e VNC, duas maneiras de acessar e controlar remotamente a sua Raspberry Pi. A seguir, discutimos suas diferenças e peculiaridades, mostrando que ambas soluções são válidas e apresentam vantagens e desvantagens em função do contexto/projeto que se quer aplicar a Raspberry. Além disso, os clientes Windows Putty e VNC Viewer foram apresentados como sugestões inicias de aplicações para experimentar com esses protocolos de conexão e controle. Dessa forma tentamos introduzir o uso dessas ferramentas importante no controle e gerência de sistemas remotos. Por fim, espero que as dicas aqui te ajudem no seu próximo projeto!

Posts relacionados

Como utilizar Processing com Arduino: Parte 3

por Danilo Nogueira
6 anos ago

Aprenda a utilizar o módulo GPS com Arduino

por autocore
7 anos ago

Entenda a Principal Diferença entre Arduino e ESP32

por Danilo Nogueira
4 anos ago
Sair da versão mobile