amazon-web-services - एक अमेज़ॅन Ec2 उदाहरण में एसएसएच की कोशिश कर रहा है - अनुमति त्रुटि




11 Answers

समस्या फाइल पर गलत mod है।

निष्पादन द्वारा आसानी से हल किया गया -

chmod 400 mykey.pem

अमेज़ॅन के निर्देशों से लिया गया -

एसएसएच के काम करने के लिए आपकी कुंजी फ़ाइल सार्वजनिक रूप से देखने योग्य नहीं होनी चाहिए। यदि आवश्यक हो तो इस कमांड का प्रयोग करें: chmod 400 mykey.pem

यह शायद कुछ लोगों के लिए एक बेवकूफ सरल सवाल है :)

मैंने अमेज़ॅन ईसी 2 पर एक नया लिनक्स उदाहरण बनाया है, और उस हिस्से के रूप में .pem फ़ाइल को डाउनलोड करने के लिए मुझे एसएसएच में अनुमति देने के लिए।

जब मैंने एसएसएच के साथ प्रयास करने की कोशिश की:

ssh -i myfile.pem <public dns>

मुझे मिला:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

इस पोस्ट के बाद मैंने पेम फ़ाइल को +600 chmod करने की कोशिश की, लेकिन अब जब मैं ssh मुझे बस मिलता है:

Permission denied (publickey).

मैं यहां क्या स्कूल-लड़का त्रुटि कर रहा हूं? .pem फ़ाइल मेरे घर फ़ोल्डर (ओएसएक्स में) में है। इसकी अनुमति इस तरह दिखती है:

[email protected]   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem



मुझे पता है कि यह खेल के लिए बहुत देर हो चुकी है ... लेकिन यह हमेशा मेरे लिए काम करता है:

चरण 1

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

चरण 2, बस एसएसएच :)

ssh [email protected]<instance public dns/ip>

जैसे

ssh [email protected]

उम्मीद है कि यह किसी की मदद करता है।




इस लेख पर एक नज़र डालें। आप सार्वजनिक DNS का उपयोग नहीं करते बल्कि फॉर्म का उपयोग करते हैं

ssh -i your.pem [email protected]

जहां नाम आपके एएमआई पैनल पर दिखाई देता है




मैक टर्मिनल में, "chmod 400 xyz.pem" करने से मेरी मदद नहीं हुई, यह कहने से अनुमति अस्वीकार कर दी गई। उबंटू उपयोगकर्ताओं के लिए मैं सुझाव दूंगा

  1. ssh-add xyz.pem
  2. ssh -i xyz.pem [email protected] (ध्यान दें कि उपयोगकर्ता ssh -i xyz.pem [email protected] है)



एसएसएच कुंजी और फ़ाइल अनुमति सर्वोत्तम प्रथाओं:

  • .ssh निर्देशिका - 0700 (केवल मालिक द्वारा)
  • निजी कुंजी / .pem फ़ाइल - 0400 (केवल स्वामी द्वारा पढ़ा गया)
  • सार्वजनिक कुंजी / .pub फ़ाइल - 0600 (केवल स्वामी द्वारा पढ़ें और लिखें)

    chmod XXXX file/directory




PUTTY का उपयोग कर वैकल्पिक लॉग-इन। यह अच्छा है लेकिन कुछ कदमों की जरूरत है।

  1. अपना .pem प्राप्त करें जो उत्पन्न हुआ जब आपने पहली बार ईसी 2 उदाहरण बनाया था।
  2. PuttyGen का उपयोग कर PuttyGen फ़ाइल .ppk को कनवर्ट करें क्योंकि PuttyGen पढ़ नहीं आता है PuttyGen
  3. ओपन पुटीटी और अपना होस्ट नाम दर्ज करें जो आपका इंस्टेंस यूजरनेम + पब्लिक डीएनएस (एक्स। [email protected]) है। आपका एडब्ल्यूएस खाता उपयोगकर्ता नाम नहीं है।
  4. फिर कनेक्शन> एसएसएच> ऑथ पर नेविगेट करें। फिर अपनी .ppk फ़ाइल जोड़ें। ब्राउज पर क्लिक करें जहां यह कहता है "प्रमाणीकरण के लिए निजी कुंजी फ़ाइल"
  5. खोलें क्लिक करें और आप तुरंत कनेक्शन स्थापित करने में सक्षम होना चाहिए।

मैं विंडोज़ में पुटी 0.66 का उपयोग कर रहा हूँ।




एक chmod 400 yourkeyfile.pem करें यदि आपका उदाहरण अमेज़ॅन लिनक्स है तो ssh -i yourkeyfile.pem ec2-user @ ip का उपयोग करें ubuntu ssh -i yourkeyfile.pem ubuntu @ ip के लिए centos ssh -i yourkeyfile.pem centos @ ip




केवल पेम फ़ाइल की अनुमति को 0600 तक अनुमति दें, केवल स्वीकृत उपयोगकर्ता के लिए अनुमति दें और यह आकर्षण की तरह काम करेगी।

sudo chmod 0600 myfile.pem

और फिर ssh करने की कोशिश करें यह पूरी तरह से काम करेगा।

ssh -i myfile.pem <<ssh_user>>@<<server>>



मेरे लिए यह तय किया गया था कि ऐप निर्देशिका में .pem फ़ाइल को स्थानांतरित करना था। तो कहें fooapp मेरे ऐप का नाम है। मैंने इसे सीधे वहां रखा।




डिफ़ॉल्ट अनुमति के द्वारा पेम कुंजी की अनुमति नहीं दे रहे हैं। आपको बस अनुमति बदलनी है:

chmod 400 xyz.pem

और यदि उबंटू इंस्टेंस का उपयोग कर कनेक्ट करें:

ssh -i xyz.pem [email protected]




यह आपके aws पेम कुंजी के साथ सिर्फ एक अनुमति मुद्दा है।

नीचे कमांड का उपयोग करके 400 तक पेम कुंजी की अनुमति बदलें।

chmod 400 pemkeyname.pem

अगर आपको फ़ाइल की अनुमति बदलने की अनुमति नहीं है तो आप नीचे कमांड की तरह सुडो का उपयोग कर सकते हैं।

sudo chmod 400 pemkeyname.pem

मुझे उम्मीद है कि यह ठीक काम करना चाहिए।




Related

amazon-web-services authentication ssh amazon-ec2 permissions