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:
Para que a chave seja gerada você deve ficar movimentando o mouse na parte vazia da caixa, conforme orientação:
Ao término da geração aparecerá uma tela como a seguir:
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:
Obs: O passos a seguir podem ser diferentes mas o conceito é o mesmo.
Acesse o menu de Acesso e Segurança
Clique na opção: Importar par de chaves:
Determine um nome para a sua chave e cole o valor da chave que foi gerado no passo anterior pelo PuttyGen:
A seguir um exemplo do texto que foi copiado no passo anterior: :
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:
Clique em Disparar instância:
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:
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:
Neste menu você pode determinar a sua configuração de rede:
Neste menu determinamos as configurações de acesso e segurança: Neste último menu mostra os detalhes da configuração escolhida:
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:
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:
Tentativa de acesso ao Putty:
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:
Clique em Add Key e selecione a chave gerada no início do artigo e digite a senha, caso tenha definido uma:
Tente o acesso novamente via Putty, somente digitando o usuário e sem a necessidade de senha:
Acessando pelo Linux
Abra a sua chave privada gerada anteriormente com o PuttyGen:
Agora precisamos converter no formato que o Linux OpenSSH reconheça, clique em Conversions / ExportSSH key:
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
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!