Introdução
Na maioria das vezes, quando os profissionais de dados precisam acessar outros servidores (que são basicamente outros computadores), eles se deparam com o sistema operacional Linux. No entanto, nem todos possuem as habilidades necessárias para acessar essa máquina, seja por falta de interesse ou de oportunidade.
O sistema operacional mais utilizado no mundo é o Windows, seguido de Mac OS e Linux (em suas diversas distribuições, dentre elas o Ubuntu), como observado na Figura 1, mostrando a contribuição de cada sistema operacional no mercado de valores de 2012 a 2020.
Figura 1 – Sistemas operacionais que se destacam no mercado de ações
Retirado de https://www.statista.com/statistics/268237/global-market-share-held-by-operating-systems-since-2009/
Se algum usuário deseja acessar outro servidor via Linux ou Mac e não via Windows, esse processo é relativamente menos trabalhoso via terminal (linha de comando), pois esses dois sistemas possuem uma origem em comum, o sistema operacional Unix, assim ainda conservam semelhanças. No caso do Windows, é outra história. Há várias maneiras de fazer isso, umas necessitando mais permissões e configurações, como no caso do Powershell (um dos modos de acessar linha de comando no windows, junto com o cmd e o bash, que pode ser instalado). Outras abordagens ainda utilizam softwares que facilitam o acesso. Nesse último caso, podemos citar o PuTTY, que será usado no tutorial deste artigo.
A ferramenta PuTTy é um terminal de emulação open source desenvolvido para atuar como um cliente SSH. Ele oferece suporte para autenticação de chave pública melhorando a segurança e oferecendo alguns benefícios, como login automatizado. Em outras palavras, o PuTTY automatiza o acesso a uma máquina virtual utilizando uma chave pública para garantir a segurança do acesso e a integridade dos dados.
O acesso a um servidor linux via PuTTY depende de alguns elementos: o PuTTY, o IP público da máquina que se quer acessar e, em conexão SSH, a host key . No nosso caso, a chave de acesso será obtida a partir da configuração de usuário no servidor da AWS, no serviço EC2.
A AWS (Amazon Web Services) é uma plataforma de serviços de computação em nuvem da Amazon, oferecidos em várias regiões geográficas distribuídas pelo mundo. Os serviços mais conhecidos da AWS são o Amazon EC2 (Amazon Elastic Compute Cloud) que são servidores virtuais na nuvem e o Amazon S3 (Amazon Simple Storage Service) um serviço de armazenamento.
Os procedimentos necessários para acesso serão explicados na próxima seção, de modo bastante detalhado.
Procedimentos
O primeiro passo é a instalação do PuTTY , que pode ser baixado no site. O usuário deve baixar a versão correspondente ao seu sistema operacional (32-bit ou 64-bit).
A instalação do PuTTY é bem simples, basta executar o assistente de instalação (wizard) após o download do aplicativo. Não há necessidade de alterar as configurações padrão, basta clicar em NEXT para dar sequência à instalação, escolher a pasta onde irá salvar o PuTTY, e seguir com o NEXT até a tela final.
Conversão da chave privada usando o PuTTYgen
Convertendo arquivo .pem em arquivo .ppk relativo ao servidor
O arquivo .ppk é um arquivo criptografado obtido a partir de um arquivo .pem, que guarda uma chave de acesso a um servidor. No caso de acesso a vários terminais Linux, Mac, Powershell (via Windows), o arquivo .pem é o utilizado, mas não no caso do PuTTY. Devido a questões de compatibilidade, é necessário converter o arquivo .pem para o formato .ppk utilizando o PuTTYgen, uma ferramenta do PuTTY para converter as chaves para o formato necessário. Esta conversão é explicada na Figura 2 e na Figura 3.
Passo-a-passo para conversão da chave privada
- No menu Iniciar, escolha Todos os programas, depois PUTTYgen.
2. Em parâmetros, no Tipo de chave (Type of key to generate) escolha RSA, não é necessário alterar o número de bits.
3. Clique em Load. Por padrão, PuTTYgen exibe apenas arquivos com a extensão .ppk, escolha exibir arquivos de todos os tipos para encontrar o seu arquivo .pem. 4. Selecione seu arquivo .pem para o par de chaves que você especificou ao iniciar sua instância, clique em Abrir.
O PuTTYgen exibe um aviso de que o arquivo .pem foi importado com êxito.
5. Para salvar a chave no formato que o PuTTY possa usar, escolha Save private Key. O PuTTYgen exibirá um aviso sobre salvar a chave sem ter uma passphrase definida. Por questões de segurança, recomenda-se criar uma senha para uso do arquivo .ppk, mas para testes isso não é necessário.
Para criar esta senha, preencha os campos. Neste caso, criamos essa senha em Key Passphrase e Confirm passphrase antes de escolher Save private key.
6. Abrirá um campo para você especificar o nome para a chave (use o mesmo que você usou para o par de chaves) e escolha salvar. PuTTY irá adicionar automaticamente a extensão de arquivo.ppk.
Sua chave primária agora está no formato correto para ser usada pelo PuTTY para conectar ao servidor.
Configuração do PuTTY
Para a sua configuração, é necessário:
- IP público do servidor que se deseja acessar
- arquivo .ppk relativo ao servidor
Obtendo IP público do servidor que se deseja acessar
Neste passo, devemos definir IP e diferenciar IP público de IP privado. O IP (Internet protocol) é um número único que identifica um computador na rede. Um exemplo disponibilizado aqui é 172.31.110.10. Este IP pode ser privado, utilizado dentro de uma rede privada (como na AWS), ou público, disponibilizado para acesso generalizado.
Acesso à máquina virtual
Para acessar uma máquina virtual via PuTTY, dado que ele está configurado, o usuário deve se conectar via IP público e criar um login e uma senha para o terminal linux.
A escolha do tipo de usuário é muito importante. Vamos mencionar dois tipos: root (raiz) e ec2-user (dependendo da versão do linux, o equivalente em termo de permissões de acesso é ‘ubuntu’ ou outro).
O usuário raiz (ou root) tem direitos de administrador, ou seja, pode executar qualquer operação, ainda que os resultados sejam catastróficos. Uma ação que deve ser evitada (a menos que seja a intenção e se saiba exatamente o que está fazendo, obviamente) é deletar uma pasta essencial ao sistema operacional. No caso do Windows, podemos citar a pasta “sys32”.
O usuário ‘ec2-user’ tem todas as permissões básicas, no entanto, não tem permissão para executar ações que podem prejudicar o sistema operacional, logo é recomendável utilizar esse. É importante observar que algumas vezes o sistema pede confirmação, o que evita possíveis erros.
Segue o passo a passo para configurar o PuTTY:
- Abra o PuTTY.
- No painel Category, escolha Session e preencha o campo Host name com o endereço do IP, verifique se a porta é 22, e em Connection type, selecione SSH.
3. No painel Category, expanda Connection, expanda SSH e selecione Auth. Em Auth, clicar em Browse para selecionar o arquivo.ppk que foi gerado a partir do arquivo.pem e clique em Open.
OBS: Se é a primeira vez que se faz conexão no servidor, o PuTTY exibe uma mensagem de alerta de segurança perguntando se você confia no host ao qual está se conectando.
4.Escolha Yes. Uma janela será aberta e a conexão é iniciada.
5. Insira o nome de usuário padrão para a sua AMI: ec2-user
Observe que na aba do console aparece o ip inserido no host name de configuração PuTTY. O uso desse usuário em vez do usuário root (raiz) evita acidentes caso um comando perigoso seja usado, pois o programa ou não te permite deletar o que é crítico ou te pede confirmação. Em contraste, no usuário root, tudo pode ser feito, até o que é prejudicial, algumas vezes, sem pedir confirmação ou usar sudo (ver lista de comandos no fim).
Nota: Se o arquivo .ppk tiver senha, vai aparecer a seguinte tela para digitá-la:
6. Feito o login você estará pronto para começar a usar
Observações adicionais
Uma vez conectado ao servidor, pode-se executar desde comandos básicos, como verificar em que pasta (diretório) você se encontra, até operações mais complexas, como extrair e processar dados de determinada base ou baixar determinados elementos de um website (excluindo outros).
Algumas vezes podem ocorrer problemas ou erros de conexão. Os erros mais comuns são: limite de tempo de conexão atingido, erro ao carregar a chave privada, chave não reconhecida pelo servidor, etc. Nestes casos, verifique parâmetros de configuração, nomes de chave, IP, formato da chave (se é um arquivo do tipo .ppk), para mais detalhes acesse o link.
No mais, deixamos claro que esta não é a única forma de acessar uma máquina virtual Linux, porém pensando no sistema operacional Windows, é uma forma bastante didática que não depende de conhecimentos avançados de computação.
Autores: Alessandra Cioletti e Rodrigo Araújo e Castro