अनुमति से इनकार कर दिया (publickey) जब SSH Amazon EC2 उदाहरण तक पहुँच जाता है [बंद]


355

मैं अपने Amazon ec2 उदाहरण का उपयोग करना चाहता हूं लेकिन निम्नलिखित त्रुटि का सामना करना पड़ा:

Permission denied (publickey).

मैंने अपनी प्रमुख जोड़ी बनाई है और .pem फ़ाइल डाउनलोड की है ।

दिया हुआ:

chmod  600 pem file.

फिर, यह आज्ञा

ssh -i /home/kashif/serverkey.pem  ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com

लेकिन क्या यह त्रुटि है:

Permission denied (publickey)

इसके अलावा, मैं फ़ाइलों को अपलोड / डाउनलोड करने के लिए फ़ाइलज़िला से कैसे जुड़ सकता हूं?


1
अपने 2 वें प्रश्न के बारे में, फाइल को अपलोड / डाउनलोड करने के लिए फाइलज़िला से कनेक्ट करें, चरण-निर्देशों के लिए इसे देखें - y2u.be/e9BDvg42-JI
Yasitha Chinthaka

2
क्या आप सुनिश्चित हैं कि आपने "sudo chmod 600 pem फाइल" का उपयोग नहीं किया है, इस त्रुटि का कारण होगा और इसका मतलब है कि आपको ssh से पहले sudo का उपयोग करने की आवश्यकता होगी
felbus

इसके अलावा कुछ डेबियन ओएस के लिए उपयोगकर्ता नाम है admin। कम से कम 6.5 और 7.0 संस्करणों के लिए।
डेवलपर

2
यदि आपका उपयोगकर्ता नाम है ec2-user, तो सुनिश्चित करें कि आप ec2_user:) का उपयोग नहीं कर रहे हैं
ग्रैजाइटिस

2
सुनिश्चित करें कि जिस उपयोगकर्ता से आप कनेक्ट करने का प्रयास कर रहे हैं, उसके पास उसकी $HOME/.ssh/authorized_keys फ़ाइल में सूचीबद्ध कुंजी है ।
ILMostro_7

जवाबों:


589

इस त्रुटि संदेश का मतलब है कि आप प्रमाणित करने में विफल रहे हैं।

ये सामान्य कारण हैं जो इसका कारण बन सकते हैं:

  1. गलत कुंजी के साथ जुड़ने की कोशिश कर रहा है। क्या आप सुनिश्चित हैं कि यह उदाहरण इस कीपर का उपयोग कर रहा है?
  2. गलत उपयोगकर्ता नाम से कनेक्ट करने का प्रयास कर रहा है। उबंटू ubuntuआधारित एडब्ल्यूएस वितरण के लिए उपयोगकर्ता नाम है, लेकिन कुछ अन्य लोगों पर ec2-user(या adminकुछ डेबियन पर, बोगदान कुलबीडा के जवाब के अनुसार) (यह भी हो सकता है root, fedoraनीचे देखें)
  3. गलत होस्ट को जोड़ने की कोशिश की जा रही है। क्या वह सही होस्ट है जिसे आप लॉग इन करने का प्रयास कर रहे हैं?

ध्यान दें कि 1.यदि आपने /home/<username>/.ssh/authorized_keysअपने EC2 उदाहरण में फ़ाइल को गड़बड़ कर दिया है तो यह भी होगा ।

के बारे में 2., जो उपयोगकर्ता नाम आप उपयोग करना चाहिए के बारे में जानकारी अक्सर एएमआई छवि विवरण से कमी है। लेकिन आप AWS EC2 प्रलेखन, बुलेट पॉइंट में कुछ पा सकते हैं 4.: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

इंस्टेंस से कनेक्ट करने के लिए ssh कमांड का उपयोग करें। आप निजी कुंजी (.pem) फ़ाइल और user_name @ public_dns_name निर्दिष्ट करेंगे। अमेज़न लिनक्स के लिए, उपयोगकर्ता का नाम ec2-user है। RHEL5 के लिए, उपयोगकर्ता नाम रूट या ec2-user है । उबंटू के लिए, उपयोगकर्ता का नाम ubuntu है । फेडोरा के लिए, उपयोगकर्ता का नाम या तो फेडोरा या ec2-user है । SUSE लिनक्स के लिए, उपयोगकर्ता नाम रूट है । अन्यथा, अगर ec2-user और root काम नहीं करते हैं, तो अपने AMI प्रदाता से जांच करें।

अंत में , ध्यान रखें कि प्रमाणीकरण विफल होने के कई अन्य कारण हैं। SSH आमतौर पर इस बारे में बहुत स्पष्ट है कि क्या गलत हुआ अगर आप -vअपने SSH कमांड के विकल्प को जोड़ने और आउटपुट को पढ़ना चाहते हैं, जैसा कि इस प्रश्न के कई अन्य उत्तरों में बताया गया है।


2
मुझे नहीं लगता कि इंटरफ़ेस आपको एक रनिंग इंस्टेंस की कुंजी जोड़ने की पेशकश करता है, इसलिए आपको एक नया शुरू करना होगा यदि आपने अपने रनिंग इंस्टेंस की कुंजी खो दी है।
थिबॉल्ट डी।

81
# 2 मेरा मुद्दा तय किया, धन्यवाद!
राकेहो 18

4
इस जवाब ने इसे मेरे लिए हल कर दिया। इस उदाहरण के लिए डिफ़ॉल्ट उपयोगकर्ता नाम "ubuntu" था, न कि ec2-user जैसा कि AWS मैनुअल में कहा गया है। 'Ec2-user@_your_EC2_IP.amazonaws.com
emf

7
# 1, गलत कुंजी के बारे में, ssh कमांड लाइन में -v (क्रिया) जोड़ने से मुझे पता चलता है कि यह किस कुंजी की कोशिश कर रहा था और इससे मुझे एहसास हुआ कि यह मेरे द्वारा उत्पन्न की गई कुंजी की कोशिश नहीं कर रहा था क्योंकि मैंने इसे id_rsa के अलावा कुछ और नाम दिया था or id_dsa
केसी बाल्ट्ज़

3
"ubuntu यूबीएनटी आधारित एडब्ल्यूएस वितरण के लिए उपयोगकर्ता नाम है," यह वही है जो मुझे मिला है। Ec2- उपयोगकर्ता के लिए इस्तेमाल किया गया था, बस यह मान लिया गया था कि हमेशा उपयोगकर्ता नाम था।
नैट रीड

48

इस मामले में समस्या खोई हुई जोड़ी से उत्पन्न होती है। इसके बारे में:

  • एक उदाहरण पर कुंजी जोड़ी को बदलने का कोई तरीका नहीं है । आपको एक नया उदाहरण बनाना होगा जो एक नया कुंजी जोड़ी का उपयोग करता है।
  • यदि आपकी आवृत्ति Elastic Beanstalk पर किसी एप्लिकेशन द्वारा उपयोग की जाती है, तो आप समस्या के आसपास काम कर सकते हैं

आप इन चरणों का पालन कर सकते हैं:

  1. AWS प्रबंधन कंसोल तक पहुंच
  2. लोचदार बीनस्टॉक टैब खोलें
  3. सभी एप्लिकेशन टैब से अपने आवेदन का चयन करें
  4. बाईं ओर के मेन्यू कॉन्फ़िगरेशन चुनें
  5. इंस्टेंस गियर पर क्लिक करें
  6. में सर्वर फार्म जाँच EC2 कुंजी जोड़ी इनपुट और अपने नए कुंजी जोड़ी का चयन करें। आपके द्वारा अभी बनाई गई एक नई कुंजी जोड़ी को देखने के लिए आपको सूची को ताज़ा करना पड़ सकता है ।
  7. सहेजें
  8. इलास्टिक बीनस्टॉक आपके लिए नई कुंजी जोड़ी के साथ जुड़े नए उदाहरणों का निर्माण करेगा।

सामान्य तौर पर, याद रखें कि आपको अपने EC2 उदाहरण को इनबाउंड SSH ट्रैफ़िक स्वीकार करने की अनुमति देनी होगी।

ऐसा करने के लिए, आपको अपने EC2 उदाहरण के सुरक्षा समूह के लिए एक विशिष्ट नियम बनाना होगा। आप इन चरणों का पालन कर सकते हैं।

  1. AWS प्रबंधन कंसोल तक पहुंच
  2. EC2 टैब खोलें
  3. उदाहरणों की सूची से उस उदाहरण का चयन करें जिसमें आप रुचि रखते हैं
  4. में विवरण टैब के नाम chek सुरक्षा समूह अपने उदाहरण का उपयोग कर रहा है।
  5. विवरण में फिर से टैब देखें नियमों पर क्लिक करें और जांचें कि क्या आपके सुरक्षा समूह के पास पोर्ट 22 पर इनबाउंड ssh ट्रैफिक के लिए कोई नियम है
  6. यदि नहीं, तो नेटवर्क और सुरक्षा मेनू में सुरक्षा समूह का चयन करें
  7. का चयन करें सुरक्षा समूह अपने उदाहरण और क्लिक द्वारा प्रयोग किया जाता इनबाउंड टैब
  8. इनबाउंड टैब के बाईं ओर आप SSH इनबाउंड ट्रैफ़िक के लिए एक नियम बना सकते हैं:
    • एक नया नियम बनाएँ : SSH
    • स्रोत : आईपी ​​पता या सबनेटवर्क जिससे आप उदाहरण के लिए पहुँच चाहते हैं
    • नोट : यदि आप अपने उदाहरण के लिए असीमित पहुँच प्रदान करना चाहते हैं, तो आप 0.0.0.0/0 निर्दिष्ट कर सकते हैं , हालाँकि अमेज़न इस अभ्यास की अनुशंसा नहीं करता है
  9. नियम जोड़ें पर क्लिक करें और फिर अपना परिवर्तन लागू करें
  10. जांचें कि क्या आप अब SSH के माध्यम से अपने उदाहरण से कनेक्ट करने में सक्षम हैं।

आशा है कि यह मेरी मदद के रूप में किसी की मदद कर सकता है।


1
आपके उत्तर का दूसरा भाग गलत है। आप "अनुमति अस्वीकार नहीं कर सकते (publickey)।" यदि आपने फ़ायरवॉल सेटिंग्स (सुरक्षा समूह) को सही ढंग से सेट नहीं किया है। "अनुमति से इनकार (publickey)।" SSH का एक त्रुटि संदेश है और यह इस बात का प्रमाण है कि आपका सुरक्षा समूह विन्यास सही है। इसके बजाय, आपको "ssh: होस्ट होस्ट xxxx पोर्ट 22 से कनेक्ट करें: कनेक्शन ने मना कर दिया"
थिबॉल्ट डी।

लंबी कहानी छोटी: त्रुटि संदेश बताता है कि इस समस्या का आपके सुरक्षा समूह कॉन्फ़िगरेशन से कोई लेना-देना नहीं है।
थिबॉल्ट डी।

आप सही हे। दूसरा भाग दूसरी तरह की समस्या का इलाज करता है। मैंने पोस्ट ठीक कर दी।
माटेयो सेसरानी

यदि आप कुंजी खो देते हैं, तो मुझे लगता है कि इसे हल करने का एक संभावित तरीका उदाहरण का स्नैपशॉट लेना होगा और फिर एक नई कुंजी के साथ एक नया शुरू करना होगा। उस स्थिति में अमेज़ॅन नई सार्वजनिक कुंजी को .ssh / अधिकृत_की में जोड़ता है ताकि पुराने को बाद में निकालना सुनिश्चित करें। (और सावधान रहें कि नए को न निकालें या आप अपने पहले मुद्दे पर वापस आ जाएं)
थिबॉल्ट डी।

43

इस तरह मैंने समस्या का समाधान किया

ssh -i <key> ec2-user@<ec2 ip>

1
ऐसा लग रहा था कि मेरे लिए यहां मेजबान बनाम आईपी का डीएनएस पता था। ec2-user @ <ip> ने मेरे लिए काम किया।
ज़ैक

1
समाधान भी।
तपोजका

26

मैंने sudoपहले ही समस्या को हल कर दिया

sudo ssh -i mykey.pem myec2.amazonaws.com

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

chown wellington:wellington key.pem

मेरे लिए काम किया (हालांकि उसके बाद कुछ पैकेजों को अपडेट करना पड़ा)!
user1429980

4
उचित समाधान पहले स्वामित्व को बदलना है, और फिर एक सामान्य उपयोगकर्ता के रूप में कनेक्ट करना है। का उपयोग करें sudo chown wellington:wellington key.pem
जानूस ट्रॉल्सन

यह आपके मामले में काम कर रहा है, क्योंकि आप अमेज़ॅन में उस वीएम को लॉगिन करने की कोशिश कर रहे हैं जो रूट उपयोगकर्ता का समर्थन करता है
तैमूर चंगेज़

मैंने तब किया था, जिसने तबामी को sudo chown user_name_given_by_whoami xxxx.pem
चिराग पुरोहित

23

प्रयोग करके देखें

sudo ssh -i mykey.pem ubuntu@<ec2_ip_public_dns>

या

sudo ssh -i mykey.pem ec2-user@<ec2_ip_public_dns>

1
इससे मुझे मदद मिली। पारितोषिक के लिए धन्यवाद! : D
jehzlau

22

इस त्रुटि का एक अन्य संभावित कारण:

जब उपयोगकर्ता की होम डायरेक्टरी ग्रुप राइट करने योग्य होती है , तो उपयोगकर्ता लॉगिन नहीं कर सकता है।

(उबंटू उदाहरण पर पुन: प्रस्तुत किया गया।)


1
+1 विश मैंने इसे 4 घंटे पहले पढ़ा था !!! मेरे मुद्दे को हल किया जहां rsync -a ने मेरे ec2-user फ़ोल्डर की अनुमति को अधिलेखित कर दिया था।
माइकल हॉब्स

अपने होम डायरेक्टरी को mv करने के बाद, मैं लॉगिन नहीं कर सका।
रॉबर्ट मून

तो आप इस तरह से प्रभावित होने वाली मशीन पर कैसे लॉगिन करते हैं, और आप इसे बिल्कुल भी लॉगिन नहीं कर सकते हैं?
PKHunter

मेरे लिए भी / घर निर्देशिका काम करता है पर फिक्स अनुमति, धन्यवाद! @AlexPetralia, आपका लिंक टूट गया है / / लेकिन इसके बारे में बात करने वाले फोरम में एक पोस्ट है: फ़ोरम .aws.amazon.com
Liko

क्या एलेक्स पेट्रालिया या @ मिचेल हॉब्स रेपोस्ट (या रेस्ट) को कोई इसका समाधान बता सकता है?
याकूब लैंगर

7

ubuntu 12.04 lts के माइक्रो उदाहरण के लिए मुझे विकल्प के रूप में उपयोगकर्ता नाम सेट करना पड़ा

ssh -i pemfile.pem -l ubuntu dns

यह मेरे लिए काम कर रहा है, मुझे आश्चर्य है कि यह वास्तव में उन उपयोगकर्ताओं पर चर्चा करने के लिए aws प्रलेखन का हिस्सा नहीं है जिनकी आवश्यकता हो सकती है।
बेन

7

आपको निम्न चरण करने की आवश्यकता है:

  1. यदि आप लिनक्स का उपयोग कर रहे हैं तो अपने ssh क्लाइंट या टर्मिनल को खोलें।
  2. अपनी निजी कुंजी फ़ाइल ढूंढें और अपनी निर्देशिका बदलें।
    cd <path to your .pem file>
  3. आदेशों के नीचे निष्पादित करें:
    chmod 400 <filename>.pem
    ssh -i <filename>.pem ubuntu@<ipaddress.com>

यदि ubuntuउपयोगकर्ता काम नहीं कर रहा है तो प्रयास करें ec2-user


5

मैंने स्पष्ट रूप से उसी अनुमति से इनकार कर दिया, जिसके कारण त्रुटि हुई

key_parse_private2: missing begin marker 

मेरी स्थिति में इसका कारण वर्तमान उपयोगकर्ता की ssh config फाइल (~ / .ssh / config) थी।

निम्नलिखित का उपयोग करना:

ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'

प्रारंभिक आउटपुट में दिखाया गया है:

debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config

... कई डिबग लाइन यहां कट ...

debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.

ऊपर की तीसरी पंक्ति वह जगह है जहाँ वास्तविक समस्या की पहचान की गई थी; हालाँकि, मैंने नीचे (ऊपर) से चार लाइनों के डिबग संदेश को देखा और गुमराह किया गया। कुंजी के साथ कोई समस्या नहीं है, लेकिन मैंने इसका परीक्षण किया और अन्य कॉन्फ़िगरेशन की तुलना की।

मेरे उपयोगकर्ता ssh config फाइल को एक अनजाने वैश्विक सेटिंग के माध्यम से मेजबान को रीसेट कर सकता है जैसा कि नीचे दिखाया गया है। पहली होस्ट लाइन पर टिप्पणी नहीं होनी चाहिए थी।

$ cat config
StrictHostKeyChecking=no
#Host myAlias
        user ec2-user
        Hostname bitbucket.org
#        IdentityFile ~/.ssh/somekey
#        IdentitiesOnly yes

Host my2ndAlias
        user myOtherUser
        Hostname bitbucket.org
        IdentityFile ~/.ssh/my2ndKey
        IdentitiesOnly yes

मुझे आशा है कि किसी और को यह मददगार लगेगा।


4

मैं अपना Ubuntu उदाहरण जोड़ते समय उपयोगकर्ता नाम (ubuntu) जोड़ना भूल गया। इसलिए मैंने यह कोशिश की:

ssh -i /path/my-key-pair.pem my-ec2-instance.amazonaws.com

और सही तरीका था

ssh -i /path/my-key-pair.pem ubuntu@my-ec2-instance.amazonaws.com

कानूनी शुरुआत त्रुटि। यदि आप उपयोगकर्ता नाम जोड़ना भूल जाते हैं, तो यह आपके स्थानीय कंप्यूटर में आपके द्वारा लॉग इन किए गए उपयोगकर्ता नाम का उपयोग करेगा।
थिबॉल्ट डी।

3

ऐसा मेरे साथ कई बार हुआ है। मैंने अमेज़ॅन लिनक्स एएमआई 2013.09.2 और उबंटू सर्वर 12.04.3 एलटीएस का उपयोग किया है जो दोनों मुफ्त टियर पर हैं।

हर बार जब मैंने एक उदाहरण लॉन्च किया है तो मेरे पास अनुमति से वंचित शो है। मैंने इसे सत्यापित नहीं किया है, लेकिन मेरा सिद्धांत यह है कि इससे पहले कि मैं इसमें ssh करने की कोशिश करूँ, सर्वर पूरी तरह से सेट नहीं है। अनुमति से वंचित कुछ प्रयासों के बाद, मैं कुछ मिनट प्रतीक्षा करता हूं और फिर मैं कनेक्ट करने में सक्षम हूं। यदि आपको यह समस्या हो रही है तो मैं सुझाव देता हूं कि पांच मिनट प्रतीक्षा करें और फिर से प्रयास करें।


मैंने 5 मिनट इंतजार किया। और यह काम किया। फ्री टियर पर भी हूँ। धन्यवाद
Emeka Mbah

2

यहाँ एक संभावित निराशाजनक परिदृश्य है जो इस त्रुटि को उत्पन्न करता है:

यदि आप AMI से एक नई आवृत्ति का उपयोग कर रहे हैं जिसे आपने एक और उदाहरण बनाया है (उदाहरण के लिए xyz), तो नया उदाहरण केवल उसी कुंजी को स्वीकार करेगा जो उस उदाहरण A का उपयोग करती है। यह पूरी तरह से समझ में आता है, लेकिन यह भ्रमित हो जाता है क्योंकि नई आवृत्ति बनाने की चरणबद्ध प्रक्रिया के दौरान, आपको एक कुंजी (बहुत अंतिम चरण में) चुनने या बनाने के लिए कहा जाता है जो काम नहीं करेगा।

आपके द्वारा बनाई गई कुंजी या चयन के बावजूद, केवल XYZ के लिए आप जिस कुंजी का उपयोग कर रहे थे, उसे नए उदाहरण द्वारा स्वीकार किया जाएगा।


वाह, मैंने कभी इस बारे में नहीं सोचा। पुरानी कुंजी का उपयोग करने से मेरे लिए समस्या हल हो गई। धन्यवाद।
tolgamorf

यह आमतौर पर अधिकृत_की फ़ाइल में नई सार्वजनिक कुंजी जोड़ता है, इसलिए दोनों को उपयोगी बनाता है। हालांकि मुझे परीक्षण किए हुए कुछ समय हो गया है, लेकिन मैं ऐसा होने की उम्मीद करूंगा।
थिबॉल्ट डी।

2

मैंने कुछ समय तक इसके लिए संघर्ष किया जब तक कि मुझे निम्नलिखित नहीं मिला:

eb ssh

जब आप प्रोजेक्ट डायरेक्टरी से उस का उपयोग करते हैं, बिंगो-बैंगो नो मूस नो फ़स, यू आर इन


2

मेरे अपने मामले में, मैंने निम्नलिखित कार्य किया:

chmod 400 <key.pem>

ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)

मैं शुरू में root@भाग का उपयोग कर रहा था और मुझे यह संकेत मिला:

Please login as the user "ec2-user" rather than the user "root".

2

मैं विंडोज में WinSCP के साथ हूं । यह मेरे अमेज़ॅन EC2-VPC लिनक्स तक पहुंचने के लिए फ़ाइल एक्सप्लोरर और पुटी एसएसएच शेल दोनों पर बहुत अच्छा काम करता है । इसका कोई लेना-देना नहीं है chmod pem fileक्योंकि यह PTTYgen द्वारा पेम फ़ाइल से myfile.ppk परिवर्तित का उपयोग करता है ।


2

मेरे साथ भी ऐसा ही हुआ, लेकिन यह सब हो रहा था कि मेरी स्थानीय मशीन पर कीचेन से निजी कुंजी खो गई।

ssh-add -K

कुंजी को फिर से जोड़ा, फिर कनेक्ट करने के लिए ssh कमांड काम पर लौट आया।


यह पुनरारंभ के बाद हर एक बार होता है और मुझे इसके लिए किसी भी वर्कअराउंड कमांड को फिर से चलाने की आवश्यकता होती है।
silentsudo

1
इसे स्वयं सत्यापित नहीं किया है, लेकिन यहाँ सत्यापित उत्तर मदद कर सकता है: Apple.stackexchange.com/questions/254468/…
eiTan LaVi

1

इस समस्या को नीचे दिए गए आदेश का उपयोग करके Ubuntu बॉक्स में लॉगिन करके हल किया जा सकता है:

ssh -i ec2key.pem ubuntu@ec2-public-IP

1
कृपया कुछ विवरण दें।
सैयदा जुनायरा

1

मेरे पास दो बार चाबियाँ हैं और ssh कमांड लाइन सही है (मुझे पता है कि क्योंकि मैं एक काम कर रहे Ubuntu 14.04 उदाहरण को दोहरा रहा हूं), लेकिन सिर्फ ऊपर दिए गए वेड एंडरसन द्वारा सुझाए गए 5 मिनट के इंतजार के बाद भी एक नए उदाहरण में ssh करने में सक्षम नहीं है।

मुझे मशीन को नष्ट करना और फिर से बनाना था। ऐसा दो अलग-अलग मौकों पर हुआ है। चूंकि मैं शुरू में नहीं मिल सकता है, मैं नहीं देख सकता कि क्या गलत है।

इसलिए, यदि आपको यह समस्या है, तो कोशिश करें।


1

आपको इन कुछ चीजों की जांच करनी चाहिए:

  1. सुनिश्चित करें कि आपका आईपी पता सही है
  2. सुनिश्चित करें कि आप सही कुंजी का उपयोग कर रहे हैं
  3. सुनिश्चित करें कि आप सही उपयोगकर्ता नाम का उपयोग कर रहे हैं, आप कोशिश कर सकते हैं: 3.1। व्यवस्थापक 3.2। ec2-user 3.3। ubuntu

मेरे पास एक ही समस्या थी, और इसे हल करने के बाद मैंने ubuntu के उपयोगकर्ता नाम को बदल दिया। AWS प्रलेखन में उपयोगकर्ता ec2-user का उल्लेख किया गया था लेकिन किसी तरह मेरे लिए काम नहीं करता है।


1

मेरी निजी कुंजी अनुमति के लिए सेट की गई थी 400 और जिसके परिणामस्वरूप परमिशन ने इसे '644' पर सेट करने से इनकार कर दिया था जिससे मुझे मदद मिली।

key_load_pStreet_type: अनुमति अस्वीकृत वह विशिष्ट त्रुटि है जो मुझे मिल रही थी

समाधान: Sudo chmod 644 <key.pem>

नोट: 644 पर सेट होना आवश्यक है, यह 400 के साथ काम नहीं कर रहा था


1

जब आप करने की कोशिश करते हैं

ssh -i <.pem path> root@ec2-public-dns

आपको संदेश का उपयोग करने की सलाह देता है ec2-user

Please login as the user "ec2-user" rather than the user "root".

इसलिए उपयोग करें

ssh -i <.pem path> ec2-user@ec2-public-dns


1

मुझे भी यही समस्या थी और बहुत अजीब। यदि आप मानते हैं कि आप इसका अनुसरण करने से अच्छा कर रहे हैं: कुछ समय के लिए EC2 उदाहरण के लिए उपयोगकर्ता के बारे में भ्रम है !! कुछ समय के लिए आपको ec2-user, ubuntu, centos आदि मिल जाते हैं। अतः माची के लिए अपने उपयोगकर्ता नाम की जाँच करें !!

रूट उपयोगकर्ता के साथ लॉगिन करें ssh -i yourkey.pem (400 permission) root@<ip> यह त्रुटि फेंक देगा और आपको उपलब्ध उपयोगकर्ता नाम देगा । फिर उस उपयोगकर्ता के साथ लॉगिन करें।


1

यह एक बुनियादी बात है, लेकिन हमेशा पुष्टि करें कि आप कौन सा उपयोगकर्ता लॉगिन करने की कोशिश कर रहे हैं। Im मेरा मामला सिर्फ एक व्याकुलता थी । मैं रूट उपयोगकर्ता का उपयोग कर रहा था :

ssh -i ~/keys/<key_name> root@111.111.111.111

लेकिन एक अन्य उपयोगकर्ता था :

ssh -i ~/keys/<key_name> dedeco@111.111.111.111

1

मैं एक ही त्रुटि लेकिन अलग स्थिति थी। मेरे लिए यह नीले रंग से बाहर हुआ था बहुत समय के बाद मैं अपने दूरस्थ कंप्यूटर को सफलतापूर्वक वहां से निकाल सकता था। मेरी समस्या का हल खोजने के बाद फ़ाइल अनुमतियाँ थीं। यह निश्चित रूप से अजीब है क्योंकि मैंने अपने कंप्यूटर या ssh की फ़ाइलों / निर्देशिकाओं से संबंधित किसी भी रिमोट को नहीं बदला है। इसलिए अच्छे आर्च्लिनक्स विकी से यहाँ यह है:

स्थानीय मशीन के लिए ऐसा करें:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa

दूरस्थ मशीन के लिए ऐसा करें:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

उसके बाद मेरी ssh ने फिर से बिना अनुमति के काम करना शुरू कर दिया (publickey) बात।


0

एक अन्य संभावित मुद्दा: गलत लॉगिन आईडी

'उपयोग निर्देश' जांचें

उपरोक्त सभी अच्छे सुझाव, लेकिन जो मैं भाग गया वह यह था कि मैंने पूर्व-निर्मित उदाहरण का चयन किया। उदाहरण शुरू होने के बाद, उपयोग के निर्देशों को देखें। मैंने निजी कुंजी की लॉगिन आईडी का गलत तरीके से उपयोग किया था जब निर्देशों में मुझे 'बिटनामी' (उदाहरण के लिए बिटनमी @ डोमेन -आई की.पीएम) का उपयोग करना चाहिए था


0

मेरी भी ऐसी ही त्रुटि थी

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: xxxx.pem
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

मेरी समस्या यह थी कि रन-ऑन-स्टार्ट-अप स्क्रिप्ट से त्रुटि के कारण उदाहरण ठीक से शुरू नहीं हुआ Step 3: Configure instance detail अंडरAdvanced details:

मुझे लगा कि मैंने क्या दर्ज किया है:

#include
 https://xxxx/bootstrap.sh


जो वास्तव में दर्ज किया गया है वह इंस्टा सेटअप को तोड़ता है

#include

https://xxxx/bootstrap.sh

इसलिए उदाहरण के लिए सार्वजनिक कुंजी नहीं बनाई गई थी


0

यह संवेदनशील मामला है।

गलत: SSH EC2-user @ XXX.XX.XX.XX -i MyEC2KeyPair.pem

सही: SSH ec2-user @ XXX.XX.XX.XX -i MyEC2KeyPair.pem


-1

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

जिस तरह से मुझे लगा कि यह मेरी निजी कुंजी से सार्वजनिक कुंजी प्राप्त कर रहा है, इस तरह से:

ssh-keygen -y -f ./myprivatekey.pem

जो सामने आया ~/.ssh/authorized_keysवह EC2 के उदाहरण पर मेल नहीं खाता ।


-1

ऊपर दिए गए शीर्ष क्रम के सभी उत्तर सटीक हैं और अधिकांश मामलों के लिए काम करना चाहिए। इस घटना में कि वे मेरे मामले में नहीं थे, मैंने ~/.ssh/known_hostsमशीन पर अपनी फ़ाइल से छुटकारा पा लिया, जिसे मैं सेश करने की कोशिश कर रहा था और इससे मेरे लिए समस्या हल हो गई। मैं बाद में कनेक्ट करने में सक्षम था।


हटाते समय known_hostsसर्वर होस्ट से कनेक्ट होने पर एक समस्या को हल कर सकता है जिसने अपनी होस्ट कुंजी को बदल दिया है (हालांकि यह एक बुरा तरीका है), मुझे पूरा यकीन है कि यह "अनुमति अस्वीकृत (publickey)" त्रुटि को हल नहीं कर सकता है ।
मार्टिन प्रिक्रील
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.