2013-04-05 191 views
28

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

但是,当我尝试rsync时,它给我错误Permission denied(publickey)。

我使用的命令是:

rsync -avL --progress -e ssh -i ~/mykeypair.pem ~/Sites/my_site/* [email protected]:/var/www/html/ 

我也试过

rsync -avz ~/Sites/mysite/* -e "ssh -i ~/.ssh/id_rsa.pub" [email protected]:/var/www/html/ 

感谢,

+0

你是如何进入SSH的? – 2013-04-05 20:45:50

+0

你的第二个版本大部分都是正确的,除非你使用了错误的钥匙。您可能还需要在ssh命令之后移动源路径。 – datasage 2013-04-06 03:50:39

回答

48

我刚刚收到了同样的错误。我一直一直能够与SSH:

ssh -i ~/path/mykeypair.pem \ 
[email protected] 

但使用的时间越长rsync的建设时,似乎会导致错误。我最终将引用中的ssh语句包含进来,并使用密钥的完整路径。在你的例子中:

rsync -avL --progress -e "ssh -i /path/to/mykeypair.pem" \ 
     ~/Sites/my_site/* \ 
     [email protected]:/var/www/html/ 

这似乎是伎俩。

+0

如果您在cmd的详细程度上遇到麻烦,您可以尝试[aws-upload](https://github.com/borracciaBlu/aws-upload)。 – borracciaBlu 2017-03-29 03:13:06

10

痛苦一点点之后,我相信这将有助于:

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

rsync -av --progress -e ssh /folder1/folder2/* [email protected]:/folder1/folder2 

首先考虑的:

使用--rsync路径

我更喜欢shell脚本:

#!/bin/bash 

RSYNC = /usr/bin/rsync 

$RSYNC [options] [source] [destination] 

其次考虑:

创建由以下命令为所讨论的服务器之间的通信的publick密钥。她将不会像亚马逊提供的一样。

ssh-keygen -t rsa 

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

Sync files from one EC2 instance to another

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

使用-v为详细和更好的识别错误的选择。

第三个考虑

如果两个服务器都在EC2上做出的安全组

约束在安全组服务器目的地:

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

+0

是啊,这也为我工作 – 2013-07-17 15:32:41

+0

感谢您提供第二个解决方案。你是救世主! ask-leo网站对于那些试图在两台服务器之间移动文件的人来说是一个很好的资源 – zock 2013-11-26 03:19:40

7

以下是我使用过的工作。 Source是ec2,目标是家用机器。

sudo rsync -azvv -e "ssh -i /home/ubuntu/key-to-ec2.pem" [email protected]:/home/ec2-user/source/ /home/ubuntu/target/ 
1

这为我工作:

nohup rsync -zravu --partial --progress -e "ssh -i xxxx.pem" [email protected]:/mnt/data /mnt2/ & 
0

向上面总结答案

复制文件从本地计算机到服务器,从服务器到本地计算机

rsync -avz -e "ssh -i /path/to/key.pem" /path/to/file.txt <username>@<ip/domain>:/path/to/directory/ 

拷贝文件

rsync -avz -e "ssh -i /path/to/key.pem" <username>@<ip/domain>:/path/to/directory/file.txt /path/to/directory/