11
respostas

Transferir aplicação para EC2

Boa tarde, Como faço para transferir a aplicação deste curso (de Cloudwatch) para a EC2? Tenho o Windows 10 e acesso a EC2 via Putty.

Andei pesquisando e não consegui realizar o comando no cmd do Windows, já na pasta em que o html se encontra:

scp -r -i chave.pem html ubuntu@ec2-100-10-111-99.compute-1.amazonaws.com:\var\www

Ele até tenta conectar, mas depois fala que o formato de chave.pem é inválido e

responde "Permission denied (publickey). Lost connection."

Já tentei com o chave.ppk também, dá a mesma resposta. O que fazer?

11 respostas

Olá Carolina, tudo bem? Nossa realmente é bastante estranho, porque a sintaxe está correta, mas para tirarmos todas as dúvidas, você poderia tentar enviar o conteúdo da pasta para o diretório home do usuário usando o seguinte comando:

scp -r -i chave.pem html ubuntu@ec2-100-10-111-99.compute-1.amazonaws.com:~

Porque o erro pode ser nas permissões da pasta /var/www da máquina EC2.

Fala pra gente o resultado!

Olá Jonilson, fiz o comando que você passou e continua dando a mesma mensagem:

"Load key "chave.pem": invalid format Permission denied (publickey). Lost connection"

Nossa, que estranho Carolina, mas com essa chave você consegue fazer o acesso SSH na máquina? Outra coisa, você poderia abrir esse arquivo com algum editor de texto como o VS Code e verificar se ela começa com -----BEGIN RSA PRIVATE KEY----- e termina com -----END RSA PRIVATE KEY-----.

Olá Jonilson, Refiz todo o processo novamente, inclusive criando novos grupos de segurança e chave. No cmd, a mensagem é "permission denied". No Putty (usando o comando pcsp), ele não encontra a pasta local que eu quero colocar na ec2. No WinSCP, a mensagem também é "permission denied". Não sei mais o que fazer...

Mais vai dar certo Carolina! O problema é que a chave, na verdade as permissões do arquivo está para diversos usuários, então o que você precisa fazer é o processo a seguir:

1 - Clicar com botão direito do mouse sobre o arquivo e depois ir em propriedades;

2 - E seguida ir na aba Segurança e por fim no botão Avançadas, como na imagem:

Aba segurança e avançadas

3 - Agora você precisa clicar no botão Desabilitar herança:

Desabilitar herança

4 - Nesse momento é preciso indicar que deseja Converter as permissões herdadas em permissões explícitas no objeto.:

Converter as permissões

5 - Por fim você precisa remover os usuários menos o usuário dono do arquivo e depois clicar em aplicar e OK:

Apagando usuário e finalizando

6 - Pronto agora já pode usar o arquivo chave.pem no comando scp e deve funcionar normalmente.

Espero ter ajudado!

Obrigada Jonilson, realmente agora a chave está funcionando. Mas ainda não consegui inserir a pasta html do trabalho, está dando "permission denied" para os itens da pasta, tanto no WinSCP quanto no cmd do Windows :(

Que bom que deu certo a primeira parte, agora nesse segundo problema, você poderia fazer o mesmo processo que fez com o arquivo chave.pem, no caso, fazer o mesmo passo a passo das permissões e usuários com a pasta html que você quer enviar para o servidor.

E fala pra gente se funcionou!

Eu fiz isso, não deu certo :(

Muito estranho mesmo isso Carolina, mas você tentou fazer a cópia apenas pro diretório home do usuário:

scp -r -i chave.pem html ubuntu@ec2-100-10-111-99.compute-1.amazonaws.com:~

Porque se você tentar fazer a cópia diretamente para o diretório /var/www do servidor, realmente não será possível porque essa pasta só pode ser acessada pelo usuário root da máquina e no comando que você está usando, você está usando o usuário ubuntu.

Fala se deu certo usando esse comando acima!

Jonilson, de acordo com o curso de Cloudwatch, eu preciso que a aplicação esteja exatamente nesse diretório /var/www. Como eu faço para colocá-la nesse diretório?

Como eu indiquei no post anterior, as pastas dentro de /var só podem ser acessadas pelo usuário root do servidor, então é possível copiar a pasta html diretamente para a pasta /var/www do servidor, primeiro você precisa copiar a pasta html para a pasta home do seu usuário da máquina EC2 que no caso é o usuário ubuntu com o seguinte comando:

scp -r -i chave.pem html ubuntu@ec2-100-10-111-99.compute-1.amazonaws.com:~

E depois você faz o acessa SSH na máquina, e pode executar o comando ls que deve ser listado a pasta html, logo em seguida você pode ir na pasta /var/www/html usando o comando:

cd /var/www/html

E então remover o arquivo padrão do apache, que é o arquivo index.html usando o comando:

sudo rm index.html

E em seguida copiar todo o conteudo da pasta html que você enviou para o servidor para a pasta /var/www/html com o seguinte comando:

sudo mv ~/html/* .

Não esqueça do ponto ( . ) indica o diretório atual, no caso o /var/www/html.

Você pode também dar uma olhada nessa outra aula, é de outro curso mais mostra o mesmo processo bem detalhadamente.

E fala se deu certo!