Estou tentando configurar uma maneira de um comando para mover o código do site de uma máquina dev para a minha instância do Ubuntu EC2 e tê-lo copiado diretamente para a pasta / var / www / mywebsite onde o nginx espera encontrar sites nessa caixa.
Essas AMIs do Ubuntu vêm com um usuário padrão do Ubuntu. Posso rsync uma pasta sem nenhum problema da máquina dev para a pasta / home / ubuntu / da instância do EC2:
rsync -avL --progress -e "ssh -i /home/me/myhosts.pem" source-folder [email protected]:~/code
mas quando eu tento rsync essa mesma pasta para / var / www como root:
rsync -avL --progress -e "ssh -i /home/me/myhosts.pem" source-folder [email protected]:/var/www/
Eu recebo o seguinte erro:
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(174) [sender=3.0.9]
Não estou bem claro porque isso está acontecendo. Notei que não consegui usar o ssh como root, pois recebo a seguinte mensagem:
Please login as the user "ubuntu" rather than the user "root".
Connection to ec2[...] closed.
que pode explicar o comportamento acima. sshd_config tem "PermitRootLogin" sim, mas acho que está bloqueado em algum outro lugar.
Eu acho que uma opção seria alterar as permissões da pasta / var / www (agora é raiz root 755) e permitir que o Ubuntu copie arquivos lá sem ter que elevar a raiz toda vez. No entanto, não tenho certeza se essa é uma boa ideia em termos de segurança e se essa é a solução correta aqui, então eu apreciaria o conselho.
Obrigado!