2013-04-05 6 views
28

पर रुनक मेरे पास एक ईसी 2 इंस्टेंस चल रहा है और मैं इसमें एसएसएच करने में सक्षम हूं।अमेज़ॅन Ec2 इंस्टेंस

हालांकि, जब मैं rsync करने का प्रयास करता हूं, तो यह मुझे त्रुटि देता है अनुमति अस्वीकार (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

आप इसमें एसएसएचइंग कैसे कर रहे हैं? –

+0

आपका दूसरा संस्करण अधिकतर सही है, सिवाय इसके कि आप गलत कुंजी का उपयोग कर रहे हैं। Ssh कमांड के बाद आपको स्रोत पथ को स्थानांतरित करने की भी आवश्यकता हो सकती है। – datasage

उत्तर

48

मैं सिर्फ इतना है कि एक ही त्रुटि प्राप्त करने की कोशिश की। मैं लगातार साथ ssh को खोज लिया था:

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

लेकिन जब लंबे समय तक rsync निर्माण का उपयोग कर, यह करने के लिए त्रुटियों का कारण लग रहा था। मैंने उद्धरणों में एसएसएच कथन को समाहित किया और कुंजी के पूर्ण पथ का उपयोग किया। आपके उदाहरण में:

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] 

दूसरा विचार:

प्रश्न में सर्वर के बीच संचार के लिए नीचे दिए गए आदेश द्वारा एक publick कुंजी बनाएँ। वह अमेज़ॅन द्वारा प्रदान की गई जैसी नहीं होगी।

ssh-keygen -t rsa 

/आदि/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 पर हैं, तो सुरक्षा समूह

द्वारा एक संयम सुरक्षा समूह सर्वर गंतव्य में बनाना:

भीतर का: स्रोत/टीसीपी पोर्ट 22/आईपी स्रोत सर्वर

+0

हाँ यह मेरे लिए भी काम करता है –

+0

दूसरा समाधान प्रदान करने के लिए धन्यवाद। आप एक उद्धारक हैं! पूछे जाने वाले साइट 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/ 
संबंधित मुद्दे