68

EC2 インスタンスを実行しており、SSH で接続できます。

ただし、rsync を実行しようとすると、Permission denied (publickey) というエラーが表示されます。

私が使用しているコマンドは次のとおりです。

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/

ありがとう、

4

5 に答える 5

110

同じエラーを受け取りました。私は一貫して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/

それはトリックを行うように見えました。

于 2013-04-24T22:57:09.300 に答える
16

以下は私が使用したもので、うまくいきました。ソースは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/
于 2014-02-08T20:17:04.503 に答える
11

少し苦しんだ後、これが役立つと思います:

以下のコマンドを使用していますが、問題なく動作しました。

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

最初の考慮事項:

--rsync-path を使用する

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

#!/bin/bash

RSYNC = /usr/bin/rsync

$RSYNC [options] [source] [destination]

2 番目の考慮事項:

問題のサーバー間の通信用に、以下のコマンドで公開鍵を作成します。彼女はAmazonが提供するものと同じではありません。

ssh-keygen -t rsa

/etc/ssh/sshd_config (UBUNTU および CENTOS) でターゲット サーバーのアクセス許可を有効にすることを忘れないでください。

ある EC2 インスタンスから別の EC2 インスタンスにファイルを同期する

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

-v オプションを使用して詳細を表示し、エラーをより適切に識別します。

第三の考察

両方のサーバーが EC2 上にある場合は、セキュリティ グループによる制限を行います

セキュリティ グループ サーバー宛先:

インバウンド: 送信元 / TCP ポート 22 / 送信元サーバーの IP セキュリティ (またはグループ名)

于 2013-07-12T15:01:37.950 に答える