2013-04-05 27 views
28

私はEC2インスタンスを実行しており、SSHを実行できます。Amazon EC2インスタンスへのRsync

しかし、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

どのようにSSHingしていますか? –

+0

間違ったキーを使用していることを除いて、2番目のバージョンはほぼ正しいです。また、sshコマンドの後にソースパスを移動する必要があるかもしれません。 – datasage

答えて

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

10

少し苦しんだ後、私はこれが役立つと信じて

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

まず考察:

使用を--rsync-path

私はシェルスクリプトで好きです:

#!/bin/bash 

RSYNC = /usr/bin/rsync 

$RSYNC [options] [source] [destination] 

セカンド考慮:

は、問題のサーバー間の通信については、以下のコマンドでブリックキーを作成します。彼女はAmazonによって提供されるものと同じではありません。

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

ええ、これも私のために働いた –

+0

2番目のソリューションを提供していただきありがとうございます。あなたは救い主です! ask-leoサイトは、2台のサーバー間でファイルを移動しようとする人にとっては便利なリソースです – zock

7

以下は私が使用したものです。ソースは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/ 
関連する問題