Rsync到Amazon Ec2实例

我有一个EC2实例正在运行,我可以通过SSH进入。

但是,当我尝试rsync,它给了我的错误权限被拒绝(公钥)。

我正在使用的命令是:

rsync -avL --progress -e ssh -i ~/mykeypair.pem ~/Sites/my_site/* root@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com:/var/www/html/ 

我也试过了

 rsync -avz ~/Sites/mysite/* -e "ssh -i ~/.ssh/id_rsa.pub" root@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com:/var/www/html/ 

谢谢,

我刚收到同样的错误。 我一直能够ssh:

 ssh -i ~/path/mykeypair.pem \ ubuntu@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com 

但是,当使用更长的rsync结构时,它似乎会导致错误。 我结束了引用中的ssh语句,并使用密钥的完整路径。 在你的例子中:

 rsync -avL --progress -e "ssh -i /path/to/mykeypair.pem" \ ~/Sites/my_site/* \ root@ec2-XX-XXX-XXX-XXX.us-west-2.compute.amazonaws.com:/var/www/html/ 

这似乎是诀窍。

经过一段时间,我相信这将有助于:

我正在使用下面的命令,它工作没有问题:

 rsync -av --progress -e ssh /folder1/folder2/* root@xxx.xxx.xxx.xxx:/folder1/folder2 

首先考虑:

使用–rsync-path

我更喜欢在shell脚本中:

 #!/bin/bash RSYNC = /usr/bin/rsync $RSYNC [options] [source] [destination] 

第二个考虑:

通过下面的命令创建一个publick关键字,用于相关服务器之间的通信。 她将不会像亚马逊提供的一样。

 ssh-keygen -t rsa 

不要忘记在/ etc / ssh / sshd_config(UBUNTU和CENTOS)中的目标服务器上启用权限。

将文件从一个EC2实例同步到另一个

http://ask-leo.com/how_can_i_automate_an_sftp_transfer_between_two_servers.html

详细使用-v选项,更好地识别错误。

第三个考虑

如果两台服务器都在EC2上,则由安全组来约束

在安全组“服务器目标”中:

入站:源/ TCP端口22 /源服务器的IP安全(或组名称)

以下是我使用和它的工作。 来源是ec2,目标是家用机器。

  sudo rsync -azvv -e "ssh -i /home/ubuntu/key-to-ec2.pem" ec2-user@xx.xxx.xxx.xx:/home/ec2-user/source/ /home/ubuntu/target/ 

这对我工作:

 nohup rsync -zravu --partial --progress -e "ssh -i xxxx.pem" ubuntu@xx.xx.xx.xx:/mnt/data /mnt2/ &