rsync para EC2: arquivo de identidade não acessível

1

Estou tentando rsync um arquivo para a minha instância do EC2:

 rsync -Paz --rsh "ssh -i ~/.ssh/myfile.pem" --rsync-path "sudo rsync" file.pdf [email protected]:/home/ubuntu/

Isso fornece a seguinte mensagem de erro:

Warning: Identity file ~/.ssh/myfile.pem not accessible: No such file or directory.
[email protected]'s password: 

O arquivo pem está definitivamente localizado no caminho ~/.ssh/myfile.pem , embora: vi ~/.ssh/myfile.pem mostre o arquivo.

Se eu remover o caminho remoto do final do comando rsync:

rsync -Paz --rsh "ssh -i ~/.ssh/myfile.pem" --rsync-path "sudo rsync" file.pdf [email protected]

Então o comando parece funcionar ...

building file list ... 
1 file to consider
file.pdf
       41985 100%    8.79MB/s    0:00:00 (xfer#1, to-check=0/1)
sent 41795 bytes  received 42 bytes  83674.00 bytes/sec
total size is 41985  speedup is 1.00

... mas quando eu vou para o servidor remoto, nada foi realmente transferido.

O que estou fazendo de errado?

    
por Richard 19.11.2012 / 14:24

2 respostas

2

--rsync-path "sudo rsync"

Isso faz com que o rsync seja executado pelo usuário privilegiado ( root ), portanto ~/ é o caminho para o diretório inicial do root. Se você omitir essa parte do código, isso deve funcionar.

PS. scp está funcionando, porque você o executa usando sua conta normal.

PS2. Removendo caminho remoto também funciona, mas isso não envia nada através da rede, mas basta copiar o arquivo "file.pdf" para o arquivo com o nome [email protected] ( veja com ls -l )

    
por 19.11.2012 / 22:37
0

Quando são apenas alguns arquivos, usar rsync não é uma grande vitória sobre scp . Mas se você está gerenciando uma árvore completa de documentos, é ótimo porque envia apenas os diffs. Aqui está o que eu sempre faço:

Configure uma entrada para o servidor remoto no meu arquivo ~/.ssh/config

Host easy-short-name
  HostName ec2-XXX-XX-XX-X.compute-1.amazonaws.com
  IdentityFile ~/.ssh/private_key.pem
  User ubuntu

Depois, você pode usar este comando rsync sem mexer nos nomes de usuário, keyfiles ou nomes de host longos:

rsync -avrk source-dir easy-short-name:~/destination-dir

Esta configuração também funciona com scp e tem o benefício de permitir que eu use apenas ssh easy-short-name para efetuar login.

    
por 19.11.2012 / 23:05