Blog Agility

Acessar uma instância em uma Cloud por meio de chaves públicas e privadas

Acessar uma instância em uma Cloud por meio de chaves públicas e privadas

 

Neste Tech Tip descreverei como criar uma instância (Máquina Virtual), em um ambiente OpenStack, criando passo a passo uma estrutura de chave pública para conceder o acesso ao ambiente.


Tipicamente os usuários que que acessam máquinas virtuais em um ambiente OpenStack constumam usar chaves públicas para autenticação e acesso via SSH.

Quando se cria uma chave pública por meio do ambiente de OpenStack esta chave é gerada com uma extensão “.pem” e para usuário Windows que acessam servidores Linux isto é um problema pois o Putty que é um cliente mais popular de acesso ao protocolo SSH, não consegue identificar este tipo de chave.

Para que o acesso a sua instância dentro da Cloud ocorra com sucesso será preciso seguir os passos abaixo, que consistem basicamente em:

Criar uma chave pública através de seu computador pessoal utilizando o PuttyGen;

Entrar no ambiente de OpenStack;

Importar a chave criada para o ambiente;

Criar uma máquina utilizando esta chave de acesso;

Acessar via seu computador pessoal a instância utilizando o PuttyAgent e o Putty.

Em seu ambiente de Cloud OpenStack pode ser um pouco diferente, mas o conceito será o mesmo, este artigo pode servir de base para a configuração no seu ambiente. Aqui estou descevendo os passos dentro do ambiente de Cloud OpenStack da Agility Networks.

Requisitos:

Acesso a uma Cloud em OpenStack, com usuário e senha;

Permissões para criar um instância (Máquina Virtual);

Permissões para importar uma chave pública;

Download dos programas: PuttyGen, PuttyAgent e Putty.exe, para a manipulação das chaves e acesso remoto. Os downloads podem ser feitos em: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Criar uma chave pública por meio do PuttyGen

Agora que já possui todos os requisitos abra o PuttyGen e clique em Generate:

2015_10_RenatoDiniz_acesso_cloud_001

Para que a chave seja gerada você deve ficar movimentando o mouse na parte vazia da caixa, conforme orientação:

2015_10_RenatoDiniz_acesso_cloud_002
Ao término da geração aparecerá uma tela como a seguir:

2015_10_RenatoDiniz_acesso_cloud_003

Na qual é permitido criar uma senha e salvar a chave pública e a chave privada. É aconselhável definir uma senha de acesso por questões de segurança e também salvar em seu computador pessoal a chave pública e privada:

Obs: a chave pública você pode salvar como “.txt” e a chave privada irá salvar como “.ppk”.

Obs: guarde as chaves em um local de acesso, pois utilizaremos novamente neste artigo.              

Acessando o ambiente de OpenStack

Acesse o seu ambiente de OpenStack, com seu usuário e senha:

2015_10_RenatoDiniz_acesso_cloud_004

Obs: O passos a seguir podem ser diferentes mas o conceito é o mesmo.

 

Acesse o menu de Acesso e Segurança

2015_10_RenatoDiniz_acesso_cloud_005

Clique na opção: Importar par de chaves:

2015_10_RenatoDiniz_acesso_cloud_006

Determine um nome para a sua chave e cole o valor da chave que foi gerado no passo anterior pelo PuttyGen:

2015_10_RenatoDiniz_acesso_cloud_007

A seguir um exemplo do texto que foi copiado no passo anterior: :

2015_10_RenatoDiniz_acesso_cloud_008

Criando uma instância (Máquina Virtual)

Aqui criaremos uma instância onde os passos a seguir podem ser diferentes dependendo de sua Cloud. No menu clique em instâncias:

2015_10_RenatoDiniz_acesso_cloud_009

Clique em Disparar instância:

2015_10_RenatoDiniz_acesso_cloud_010

Os menus a seguir seguem uma customização da instância que iremos criar, não entrarei nos detalhes de cada opção. Selecione a imagem que desejar:

2015_10_RenatoDiniz_acesso_cloud_011

Selecione as configurações de Cpus, Memória, Disco, etc: Neste menu você pode definir um nome para a sua instância, quantidade de instância a serem criadas:

2015_10_RenatoDiniz_acesso_cloud_012

Neste menu você pode determinar a sua configuração de rede:

2015_10_RenatoDiniz_acesso_cloud_013

Neste menu determinamos as configurações de acesso e segurança: Neste último menu mostra os detalhes da configuração escolhida:

2015_10_RenatoDiniz_acesso_cloud_014

2015_10_RenatoDiniz_acesso_cloud_015

Neste menu é necessário selecionar a chave pública que foi criada no início deste artigo. Também mostra dicas de acesso, para seguir é necessário confirmar que reconhece a chave selecionada:

2015_10_RenatoDiniz_acesso_cloud_016

 

Acessando sua instância via Putty

Aqui é o ponto onde eu gostaria de chegar, neste caso criamos uma máquina, mas não temos acesso a ela porque o acesso a Cloud só é permitido por meio de chave pública. Verifiquei o IP de minha instância, mas ainda não possuo o acesso conforme a seguir:

2015_10_RenatoDiniz_acesso_cloud_017

Tentativa de acesso ao Putty:

2015_10_RenatoDiniz_acesso_cloud_018

Acessando pelo Windows

Para que o acesso tenha sucesso, você deve carregar a senha gerada pelo utilitário PuttyAgent. Abra o software PuttyAgent, ele não fica visível aparentemente, para abri-lo clique na seta próximo ao relógio do Windows:

2015_10_RenatoDiniz_acesso_cloud_019

Clique em Add Key e selecione a chave gerada no início do artigo e digite a senha, caso tenha definido uma:

2015_10_RenatoDiniz_acesso_cloud_020

Tente o acesso novamente via Putty, somente digitando o usuário e sem a necessidade de senha:

2015_10_RenatoDiniz_acesso_cloud_021

Acessando pelo Linux

Abra a sua chave privada gerada anteriormente com o PuttyGen:

2015_10_RenatoDiniz_acesso_cloud_022

Agora precisamos converter no formato que o Linux OpenSSH reconheça, clique em Conversions / ExportSSH key:

2015_10_RenatoDiniz_acesso_cloud_023

Para acessar a sua instância (Máquina Virtual) pelo Linux é necessário copiar a chave privada que foi gerada acima para o sistema em um diretório de sua preferência, neste caso eu copiei a chave dentro do diretório /root:
023 Depois de copiar o arquivo para evitar erros de permissão configure a permissão da chave conforme a seguir: # chmod 600 private.ppk Para acessar a instância use a sintaxe a seguir do comando ssh: #ssh –i “Chave Privada” <Usuário>@<IP da Instância> Exemplo # ssh -i private.ppk centos@10.4.4.60

2015_10_RenatoDiniz_acesso_cloud_024
Neste Tech Tip, descrevi como geramos as chaves públicas e privadas por meio do software PuttyGen, como carregar usando o software PuttyAgent e como converter para o formatdo do OpenSSH para que o acesso seja feito atráves de máquinas Linux.
Caso queiram ver outros artigos meus por favor acessem:

Renato Diniz Marigo: http://techcenter.agilitynetworks.com.br/index.php?option=com_content&view=author&Itemid=466&id=553.

Espero ter ajudado!