2013-04-05 178 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/