web-dev-qa-db-ja.com

Amazon Ec2インスタンスへのRsync

EC2インスタンスを実行していて、そこにSSHで接続できます。

ただし、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/

おかげで、

45
a53-416

同じエラーが表示されました。私は一貫して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/

それはトリックを行うようでした。

79
natxty

少し苦しんだ後、私はこれが助けになると信じています:

私は以下のコマンドを使用していますが、問題なく機能しています:

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

最初の考慮事項:

--rsync-pathを使用します

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

#!/bin/bash

RSYNC = /usr/bin/rsync

$RSYNC [options] [source] [destination]

2番目の考慮事項:

問題のサーバー間の通信用に、以下のコマンドで公開キーを作成します。彼女はアマゾンが提供するものとは異なります。

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セキュリティ(またはグループ名)

10
rmsys

以下は私が使用したものであり、うまくいきました。ソースはec2で、ターゲットはホームマシンでした。

 Sudo rsync  -azvv -e "ssh -i /home/ubuntu/key-to-ec2.pem" [email protected]:/home/ec2-user/source/ /home/ubuntu/target/
10
Deepti Kohli

ローカルマシンからサーバーにファイルをコピーする

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/
3

これは私のために働いた:

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