Conectar SSH e SFTP no EC2 da Amazon pelo Putty e filezilla

Introdução:

* Se você quer ir direto ao ponto sobre a configuração de SSH e SFTP, pule esta parte *

Há tempos venho usando o S3 da Amazon para soluções de storage ( diga-se de passagem, backup ) e sempre li muita coisa sobre o EC2 (plataforma de cloud), porém, nunca tinha parado para começar a usar – tinha focado em AppEngine e Windows Azure.

Há algumas semanas atrás, descobri que o EC2 estava com um programa para 1 ano de hosting gratuito nas instâncias micro, com recurso mais do que suficiente para rodar sites com acessos relativamente pequenos. Fiz a inscrição e fiquei encantado com a qualidade da plataforma.

Primeiro pela instalação: com alguns cliques você consegue subir sua primeira instância em segundos, e usando algumas máquinas virtuais prontas, pode até escolher a distribuição que deseja usar. Se for um pouco mais longe, pode até customizar a sua.

Segundo, pela liberdade: eu gosto de gerenciar meus próprios servidores, pois tenho liberdade de aplicar os patches que eu quiser, agendar tarefas, controlar permissões de acesso, etc.

Terceiro, pela arquitetura feita para escalar: no modelo de cloud computing, você paga somente aquilo que você usa baseando-se no número de horas utilizado por instância. Imagine o cenário que seu site tem um pico gigante de acesso,  e que você precisa de poder computacional para aguentar: na infra convencional, ou você dimensiona o volume para mais, ou fica vendo seu site cair com os braços amarrados :(

Já no cloud, isso não ocorre. Questão de poucos minutos (dependendo dos scripts de inicialização), a tarefa é realizada, e ainda pode ser automatizada com base em uma série de alarmes que você pode configurar.

Mas para chegar lá, você vai precisar trilhar um pouco alguns caminhos, como principalmente configurar o seu servidor. O primeiro passo é chegar ao SSH.

Conectando ao SSH

Logo após realizar a inscrição no EC2, você deve subir a instância. Eu selecionei a instância do Amazon Linux, que tem 8gb, e é um dos primeiros da lista.

No processo de subir a instância, uma chave privada será gerada (extensão .pem) para que você possa acessar o servidor. Guarde essa chave em um local seguro.

Para usar o putty, é necessário que você converta a chave gerada (extensão .pem), para o formato de chave que o putty entende e para isso, você precisará do puttygen.

  1. Abra o puttygen
  2. Clique no menu Conversions->Import Key e localize o arquivo .pem;
  3. Clique no botão Save private Key, e guarde o arquivo em um local seguro. A extensão é .ppk ;

Feito isso, abra o seu console da Amazon , entre no EC2, e clique em instances. Ao clicar na sua instância, alguns detalhes aparecerão abaixo, e o que você precisa saber é o “Public DNS”.

EC2 console - public dns

EC2 console - public dns

Feito isso, você está quase lá! Precisamos apenas configurar o putty para carregar a chave e abrir o endereço.

  1. Abra o Putty
  2. No item Session, digite na caixa host name o valor do seu public DNS. O usuário padrão é ec2-user, portanto, o valor deve ficar: ec2-user@seu_public_dns
  3. No item connection, ssh, auth, localize o seu arquivo ppk (sua chave gerada no passo anterior)
  4. Volte para a aba session e mande ‘open’. Pronto, você estará conectado!

Conectando ao SFTP

Chegar ao shell do seu servidor já foi um passo. Se você sabe usar SCP, talvez nem precise saber como conectar ao SFTP (secure ftp), porém, para muitos usuários, usar um programa como filezilla faz muita diferença.

Por padrão, o Filezilla consegue conectar em FTP e SFTP, porém, no caso de autenticação por chave privada, o processo fica um pouco diferente. Não há usuário e senha, apenas uma chave.

Para resolver isso, baixa você baixar o pageant, que também faz parte do pacote do putty. Basicamente, você importa sua chave para ele, e ele se encarrega de encapsular a autenticação. Passos:

  1. Abra o pageant. Um computador com um chapéu preto ficará no systray;
  2. Dê dois cliques para abrir, e vá no botão addkey. Localize seu arquivo ppk gerado no primeiro passo;
  3. Fecha o pageant e abra o Filezilla. No campo host, digite seu public dns, no campo usuário digite ec2-user e porta, coloque 22. Mande conectar e pronto!

Com FTP e SSH rolando, o resto é com você. Lembrando que o gerenciador de pacotes do Amazon Linux é baseado em yum. Alguns pacotes interessantes:

  • yum install httpd
  • yum install automake
  • yum install php
  • yum install python

É isso. Se tiver dúvidas, não deixe de comentar.

Bookmarksbookmark bookmark bookmark bookmark bookmark bookmark

Popularity: 4%

7 Comments so far

  1. Luferat on February 20th, 2011

    Opa! Valeu pela dica! Estava tentando usar o Putty faz algumas horas. Estava justamente encrencado com o formato da chave da Amazon sem me tocar do puttygen…

    Nota 10 seu tutorial!

  2. Felipe Gama on February 4th, 2012

    bom dia, parabéns pelo artigo, é EXCELENTE!!! me ajudou muito. fiz tudo baseado nas suas dicas e deu certo!!!

    obs. só uma coisa, eu fiz tudo isso no final da tarde de ontem e deu tudo certo, mas agora de manha o sftp (filezila) não esta conectando!! já refiz todo o procedimento e nada!! tem ideia do que pode ser???

    obrigado. abraços

  3. admin on February 8th, 2012

    Veja se o pageant está aberto e sua chave está lá. Vê também se a maquina virtual está ativa.

  4. Reginaldo on August 10th, 2012

    Meu amigo se puder me ajudar, na criação da instância ele gerou uma chave mas se eu quiser criar um novo usuário e uma nova chave como eu faço, tenho outras pessoas que vão acessar o cloud mas so temos o usuário criado na instância

  5. admin on August 12th, 2012

    Reginaldo: Essa chave é a “mestra”, diga-se assim.

    Para liberar outros usuários, basta colocar as chaves públicas no ssh, igual você faz em qqr server linux, veja:
    http://serverfault.com/questions/300352/ec2-multiple-ssh-keys-for-an-instance

    abs

    Robson

  6. Reginaldo on August 14th, 2012

    Meu amigo obrigado pelas dicas,se puder ma ajudar em mais uma coisa eu tenho uma instância windows com uma aplicação rodando nela, gostaria de fazer backup no S3 como eu faço, preciso de um software para enviar os dados ftp ou http se sim pode me indicar um ?

  7. Rafael Paulino on August 1st, 2013

    Oi tem este esquema aqui tb, vc vai no filezilla clica em configurações e escolhe sftp e importa a sua chave p/lá, que ai já funciona sem precisar de nenhuma programa.

    Eu vi aqui:

    http://lzw-programmingjourney.blogspot.com.br/2011/12/set-up-ftp-server-on-amazon-aws-ec2.html

Vale Presente