किसी फ़ाइल को Amazon EC2 उदाहरण में कॉपी करने के लिए scp का उपयोग करना?


198

मैं अपने अमेज़ॅन EC2 उदाहरण में डाउनलोड (phpMyAdmin मैंने ऑनलाइन डाउनलोड किया) से एक फ़ाइल को स्कैन करने के लिए अपने मैक टर्मिनल का उपयोग करने की कोशिश कर रहा हूं।

मेरे द्वारा उपयोग की जाने वाली कमांड थी:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

मुझे जो त्रुटि मिली: चेतावनी: पहचान फ़ाइल myAmazonKey.pem सुलभ नहीं: ऐसी कोई फ़ाइल या निर्देशिका नहीं। अनुमति से इनकार (publickey)। खोया तार

मेरे myAmazonkey.pem और phpMyAdmin-3.4.5-all-languages.tar.gz दोनों ही डाउनलोड में हैं, इसलिए मैंने कोशिश की

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

और त्रुटि मुझे मिली: चेतावनी: पहचान फ़ाइल /User/Hello_Kitty22/Downloads/myAmazonkey.pem सुलभ नहीं: ऐसी कोई फ़ाइल या निर्देशिका नहीं। अनुमति से इनकार (publickey)। खोया तार

क्या कोई मुझे बता सकता है कि मेरी समस्या को कैसे ठीक किया जाए?

ps एक समान पोस्ट है: पासवर्ड के बिना ec2 उदाहरण के लिए scp (सिक्योर कॉपी) लेकिन यह मेरे सवाल का जवाब नहीं देता है।


मुझे ऐसा लगता है कि जब मैं अपना अमेज़ॅन उदाहरण ऑनलाइन शुरू करता हूं, तो मैं अपनी स्थानीय फ़ाइलों को किसी भी अधिक डाउनलोड में एक्सेस नहीं कर सकता हूं
HoKy22

जवाबों:


376

उपयोगकर्ता को निर्दिष्ट करने का प्रयास करें ec2-user, जैसे

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

SSH का उपयोग करके लिनक्स / UNIX इंस्टेंस से कनेक्ट करना देखें ।


16
बहुत अच्छा काम करता है। ध्यान दें कि यदि आप एक ubuntu उदाहरण चला रहे हैं तो आपका उपयोगकर्ता डिफ़ॉल्ट उपयोगकर्ता "ubuntu" हो सकता है।
रसेलस्टार्ट

पाठ्यक्रम की नकल / काम नहीं कर सकता है। ज्ञानवर्धन के लिए धन्यवाद!
dnuske

@DanielDropik मुझे नहीं पता कि आप मजाक कर रहे हैं या नहीं ... लेकिन :/फ़ोल्डर को सिस्टम के रूट पर कॉपी करने की कोशिश करेंगे, जो सभी मशीनों पर सुडो (या रूट के रूप में) को चलाने के बिना अनुमति त्रुटियां देगा।
Dobz

यह क्यों कह रहा है कि कृपया उपयोगकर्ता "रूट" के बजाय उपयोगकर्ता "ubuntu" के रूप में लॉगिन करें। मुझे कॉपी के लिए क्या करने की आवश्यकता है
अर्जुन

मेरे मामले में मैं उपयोगकर्ता का उपयोग कर रहा था लेकिन, अंतर मैं जनता को जोड़ता हूं mec2-50-17-16-67.compute-1.amazonaws.com डोमेन नाम के बजाय
shareef

31

दूसरी निर्देशिका आपका लक्ष्य गंतव्य है, वहां सर्वर नाम का उपयोग न करें। दूसरे शब्दों में, आपको उस मशीन के लिए मशीन के नाम का उल्लेख करने की आवश्यकता नहीं है जो आप वर्तमान में कर रहे हैं।

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

अगर यह एक निर्देशिका है।


19

SSH के कार्य करने के लिए आपकी कुंजी सार्वजनिक रूप से देखने योग्य नहीं होनी चाहिए। यदि आवश्यक हो तो इस कमांड का उपयोग करें:

chmod 400 yourPublicKeyFile.pem

आपने मेरा दिन बचा लिया भाई
मयूख सरकार

13

उपरोक्त scp कमांड को आज़माने के लिए आपको स्थानीय मशीन पर होना चाहिए।

अपने स्थानीय मशीन पर कोशिश करें:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

9

यहाँ EC2 उदाहरण के लिए क्या काम करता है इसका विवरण दिया गया है :

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

शुरुआत के लिए कुछ नोट्स:

  1. के बाद दिए गए तीन मापदंडों के बीच रिक्त स्थान पर ध्यान दें -i
  2. scpसुरक्षित प्रतिलिपि प्रोटोकॉल के लिए खड़ा है। शब्दों को जानने से कमांड को याद रखना आसान हो जाता है।
  3. -iतय करता है कि आपको .pemफ़ाइल को अगले पैराम के रूप में देने की आवश्यकता है । अगर वहाँ नहीं है -i, की तुलना में आप की जरूरत नहीं है .pem
  4. :~EC2 उदाहरण के लिए गंतव्य के अंत में ध्यान दें ।

7

मुझे ठीक वैसी ही समस्या थी, मेरा समाधान था

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (इसे यहां खाली छोड़ दें)

एक बार जब आप इस भाग को कर लेते हैं, तो ssh सर्वर और mv फ़ाइल में वांछित स्थान पर पहुँच जाते हैं



3

नीचे एससीपी प्रारूप मेरे लिए काम करता है

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt : यह आपके रूट डायरेक्टरी (मेरे मामले, / घर / ubuntu) से रास्ता होगा। मेरे मामले में वह फ़ाइल जिसे मैं डाउनलोड करना चाहता था, वह थी / var / www

SampleFile2.txt : यह आपकी मशीन के मूल पथ का पथ होगा (मेरे मामले में, / home / MyPCUserName)

इसलिए, मुझे कमांड के नीचे लिखना होगा

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads

2

स्थानीय से सर्वर पर फ़ाइल भेजें:

scp -i .ssh / awsinstance.pem my_local_file ubuntu@XX.XXX.XXX.XXX: / home / ubuntu

सर्वर से स्थानीय में फ़ाइल डाउनलोड करें:

scp -i .ssh / awsinstance.pem ubuntu@XX.XXX.XXX.XXX: / home / ubuntu / server_file।


1

स्थानीय मशीन से AWS EC2 Linux उदाहरण में फ़ाइलों को कॉपी करने के लिए SCP का उपयोग करने की प्रक्रिया को चरण-दर-चरण (नीचे उल्लिखित बिंदुओं सहित) कवर किया गया है इस वीडियो

SCP का उपयोग करके इस विशेष समस्या को ठीक करने के लिए:

  1. आपको सही लिनक्स उपयोगकर्ता को निर्दिष्ट करने की आवश्यकता है। से अमेज़न :

    • अमेज़न लिनक्स के लिए, उपयोगकर्ता का नाम ec2-user है।
    • RHEL के लिए, उपयोगकर्ता नाम ec2-user या root है।
    • Ubuntu के लिए, उपयोगकर्ता का नाम ubuntu या root है।
    • सेंटोस के लिए, उपयोगकर्ता नाम सेंटोस है।
    • फेडोरा के लिए, उपयोगकर्ता नाम ec2-user है।
    • SUSE के लिए, उपयोगकर्ता नाम ec2-user या रूट है।
    • अन्यथा, अगर ec2-user और root काम नहीं करते हैं, तो अपने AMI प्रदाता से जांच करें।
  2. आपकी निजी कुंजी सार्वजनिक रूप से दिखाई नहीं देनी चाहिए। निम्न कमांड चलाएँ ताकि केवल रूट उपयोगकर्ता ही फ़ाइल को पढ़ सके।

    chmod 400 /path/to/yourKeyFile.pem
    

0

.Pem फ़ाइल पर अनुमतियों की जाँच करें ... ओपेनशॉट आमतौर पर विश्व-पठनीय निजी कुंजियों को पसंद नहीं करता है, और विफल हो जाएगा (iir, scp उपयोगकर्ता को यह फ़ीडबैक प्रदान करने का एक बड़ा काम नहीं करता है)।

क्या आप बस उस कुंजी के साथ अपने AWS होस्ट को ssh कर सकते हैं?


हां, मैं अपने AWS होस्ट को उस कुंजी के साथ ssh कर सकता हूं। वास्तव में, मुझे जो समस्या हो रही है, मैं अमेज़ॅन होस्ट (ssh के माध्यम से) पर हूं, इसलिए जब मैं सीडी करता हूं, तो मैं केवल अपने अमेज़ॅन सर्वर पर फाइलें देख सकता हूं, न कि मेरी स्थानीय मैक डाउनलोड निर्देशिका जहां मैंने अपनी पीएम फाइल को बचाया है । जब मैं अपने ec2 होस्ट से बाहर निकलता हूं, तो मैं केवल अपने स्थानीय मैक डाउनलोड निर्देशिका में cd कर सकता हूं। लेकिन अगर मैं अपने ec2 होस्ट से बाहर निकलता हूं, तो मैं अपने ec2 सर्वर पर फ़ाइल phpMyAdmin अपलोड नहीं कर सका। मेरे पेम की अनुमति 400 है, मुझे लगता है कि यह ठीक है।
HoKy22

2
मदद के लिए बहुत-बहुत धन्यवाद, मैंने अपनी समस्या को आपके द्वारा पूछे गए आखिरी प्रश्न से पाया। ऐसा लगता है कि मैं ssh या scp कर सकता हूं, एक साथ दो नहीं।
HoKy22

संकेत hellokitty22 के लिए धन्यवाद। मेरे पास ssh के लिए दो टर्मिनल थे और एक scp के लिए भी था।
donebizkit

0

पहले आपको .pemकेवल मोड को पढ़ने और लिखने के मोड से फ़ाइल का मोड बदलना चाहिए । यह टर्मिनल में केवल एक कमांड द्वारा किया जा सकता हैsudo chmod 400 your_public_key.pem


0

मैंने ऊपर वर्णित सभी सुझावों की कोशिश की और कुछ भी काम नहीं किया। मैंने वर्तमान उदाहरण को समाप्त कर दिया, एक और लॉन्च किया और उसी सटीक प्रक्रिया को दोहराया। इस बार कोई समस्या नहीं। कभी-कभी यह दूरस्थ अमी की गलती हो सकती है।


0

यह सिर्फ मेरे लिए काम किया। मैंने इस प्रश्न के दो अन्य उत्तरों के संयोजन का उपयोग किया।

scp -i /Users/me/documents/myKP.pem -r /Users/me/desktop/testDir \
       ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com:/home/ec2-user/remoteDir

"Ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com" आपके ec2 उदाहरण के सार्वजनिक DNS से ​​कॉपी-पेस्ट किया जाता है।


-1

मै इस्तेमाल करूंगा:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.