scp para AWS EC2 - erro - "Por favor, faça o login como usuário" ubuntu "em vez do usuário" root "."

3

Estou tentando scp um arquivo para / var / www porque estou jogando com o apache. Para mover o arquivo eu faço scp -i <ec2-shh-key> localfile root@<ec2-instance-ip>:/var/www/fileremote .

Mas isso me dá um erro:

Please login as the user "ubuntu" rather than the user "root".

Como posso resolver este problema?

EDIT: Eu descobri esta pergunta de superusuário que responde a pergunta por primeiro scp'ing o arquivo para um diretório não-sudo, em seguida, passando um comando sudo mv sobre ssh para mover o arquivo. Não há como fazer isso em uma única etapa com apenas scp?

    
por kalaracey 13.05.2012 / 11:34

3 respostas

1

Se você está recebendo o erro que você lista, então você não está especificando "ubuntu @" no comando scp, ou você copiou o arquivo /root/.ssh/authorized_keys para /home/ubuntu/.ssh/authorized_keys (que seria ruim como você poderia, então não logar com o ssh).

É verdade que quando você começar a especificar "ubuntu @" você receberá um erro de permissão, mas você pode contornar isso usando um comando como este:

rsync -vazSHAX --rsync-path "sudo rsync" LOCALILE ubuntu@HOST:/var/www/REMOTEFILE

A chave aqui é a opção --rsync-path.

O comando rsync permite até que você copie árvores inteiras de diretório como em:

rsync -vazSHAX --rsync-path "sudo rsync" LOCALDIR/ ubuntu@HOST:REMOTEDIR/

Se você iniciou a instância com um par de chaves gerado pelo EC2, você também pode precisar especificar essa opção em rsync apontando para a cópia local da chave ssh baixada:

--rsh "ssh -i KEYPAIR.pem"

Aqui está um artigo que escrevi sobre como usar sudo, ssh, rsync em instâncias do Ubuntu EC2:

Using sudo, ssh, rsync on the Official Ubuntu Images for EC2
http://alestic.com/2009/04/ubuntu-ec2-sudo-ssh-rsync

Aqui está um artigo onde eu explico como fazer upload da sua chave ssh pessoal padrão para o EC2, para que o ssh e o rsync não precisem de opções extras de identidade:

Uploading Personal ssh Keys to Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

    
por 15.05.2012 / 02:19
1

Você pode. Crie um grupo, diga "www-admin", adicione seu nome de usuário a esse grupo, chown / var / www / fileremote para: www-admin, e chmod esse caminho para permitir a gravação em grupo.

É claro que, se o caminho tiver sido transferido para outra coisa (grupo não padrão), esse grupo perderá todo o acesso. Mas, neste caso, basta adicionar seu nome de usuário a esse grupo.

    
por 13.05.2012 / 11:47
0

Eu vim aqui procurando uma resposta para esse problema também.

No meu caso, apesar de ter copiado incorretamente o ~root/.ssh/authorized_keys para outra conta, em vez de copiar meu ~ubuntu/.ssh/authorized_keys pretendido.

O usuário root authorized_keys tem um comando específico que não permite a conexão.

    
por 12.01.2018 / 19:42