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