इस ssh त्रुटि का क्या अर्थ है?


9

ये मेरा आखरी उपाय है। मैं घंटों से यहां समस्या का पता लगाने की कोशिश कर रहा हूं।

यहाँ सौदा है: मैंने मशीन # 2 पर मशीन से अपनी निजी कुंजी कॉपी की है। मशीन # 1 मेरी सार्वजनिक कुंजी के साथ सर्वर से ssh के माध्यम से जुड़ने में सक्षम है, लेकिन मशीन # 2 सर्वर से कनेक्ट करने का प्रयास करते समय, निम्न आउटपुट देता है:

$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace

...


Permission denied (publickey).

जाहिर तौर पर अधिक डिबग आउटपुट है जिसे मैंने छोड़ दिया है, और मैं अनुरोध पर प्रदान कर सकता हूं। मुझे यकीन है कि यह मेरी निजी कुंजी फ़ाइल पसंद नहीं है।

मुझे यह भी संदेह था कि इसे मशीन # 1 से मशीन # 2 पर कॉपी करने के तरीके के साथ क्या करना है। मैं फ़्लैश ड्राइव पर निजी कुंजी से पाठ को कॉपी / पेस्ट करता हूं। यह समस्या हो सकती है, हालांकि, जब मैंने इस पद्धति को एक और काम करने वाली निजी कुंजी फ़ाइल पर डुप्लिकेट किया था, और मूल पर एक अलग किया था, तो कॉपी / चिपकाया गया, वे समान हैं।

मैं इससे जूझ रहा हूं। अगर मुझे इस बारे में थोड़ी और जानकारी मिल सकती है कि यह मेरी कुंजी क्यों पसंद नहीं है, तो मैं इसे ठीक कर सकता हूं मुझे यकीन है। क्या किसी के भी पास इस पर कोई विचार है? क्या कुछ मेटा-डेटा है जो ssh को बताता है कि एक फ़ाइल वास्तव में एक RSA कुंजी है?


और /var/log/auth.logसर्वर पर क्या कहता है?
Womble

स्पष्टीकरण के लिए, मशीन 1 से सार्वजनिक कुंजी सर्वर से कनेक्ट होती है। मशीन 1 से निजी कुंजी, मशीन 2 पर चलने से सर्वर से कनेक्ट नहीं होगा?
ड्रू

मेरे पास दोनों मशीनों पर समान कुंजी जोड़ी है, और सार्वजनिक कुंजी सर्वर पर है। मैंने क्लाइंट मशीन 1 से कुंजियों को चिपकाया है, जिसमें सर्वर से जुड़ने में कोई समस्या नहीं है, यहाँ मेरे घर के कंप्यूटर (मशीन 2) में है जो इस प्रमाणीकरण समस्या है।
केविन

@womble, दुर्भाग्य से, मैं सर्वर का उपयोग नहीं कर सकता, अगर मुझे यह पता चल सके कि मैं सही में ssh कर पाऊंगा .. आह, विडंबना ...;)
kevin

दो क्लाइंट मशीनों पर ऑपरेटिंग सिस्टम क्या हैं? क्या निजी कुंजी का स्थानांतरण लाइन-एंडिंग को हटा सकता है या शुरुआती लाइन से पहले पाठ (संभवतः रिक्त लाइनें या रिक्त स्थान) पेश कर सकता है?
स्ट्रोबोर

जवाबों:


7

मेरे अनुभव में दो सबसे सामान्य कुंजी आधारित त्रुटि हैं

  1. $HOME/.sshनिर्देशिका पर अनुचित रूप से व्यापक अनुमतियाँ
  2. रिमोट सिस्टम के लिए सार्वजनिक कुंजी की प्रतिलिपि बनाने में त्रुटि

फ़ाइल अनुमतियाँ

ओपनएसएसएच आपको खुद से बचाने के प्रयास में बहुत कुछ करता है। ऐसा होने वाला सबसे उपयोगकर्ता प्रभाव आपके स्थानीय ssh फ़ोल्डर में पहुँच पाने वालों पर कठोर प्रतिबंध लगाने से है। आप वास्तव में केवल आप चाहते हैं, और केवल आप, निर्देशिका का उपयोग करने के लिए। ठीक है, और किसी के पास uid = 0 है, लेकिन इसके आसपास कोई अच्छा तरीका नहीं है। तो आपको जो करने की ज़रूरत है वह बस अपनी अनुमतियों को बदल chmod -R go-rwx ~/.sshदें : यह मालिक, यानी आप को छोड़कर सभी उपयोगकर्ताओं से .ssh निर्देशिका के नीचे किसी भी फाइल के अधिकारों को पढ़ने, लिखने और निष्पादित करने को हटा देगा ।

अधिकृत कुंजी मुद्दे

आपकी सार्वजनिक कुंजी वाली फ़ाइल, आमतौर पर $HOME/.ssh/authorized_keysSSH के लिए एक बहुत ही विशिष्ट रूप में फिट होती है , यह समझने के लिए कि निजी कुंजी को कैसे स्वीकार किया जाए। प्रत्येक कुंजी में कम से कम, 2 फ़ील्ड शामिल होने चाहिए

  1. प्रयुक्त कुंजी का प्रकार (RSA, DSA, RSA1, आदि)
  2. चाभी

प्रत्येक कुंजी, इसके सभी विकल्पों और घटक भागों के साथ, इस फ़ाइल में प्रति पंक्ति एक सूची होनी चाहिए। चूंकि चाबियां बहुत लंबी होती हैं इसलिए वे अक्सर आपके टर्मिनल पर दो लाइनों के रूप में लिपटे और दिखाई देंगे। कभी-कभी कॉपी / पेस्ट करने का प्रयास करने पर यह कहर पैदा करेगा, क्योंकि कभी-कभी एक या एक से अधिक newlines आपकी स्क्रीन पर कुंजी को लपेटता है। इस समस्या को ठीक करना शेल शुरुआती के लिए थोड़ा मुश्किल हो सकता है।

चलाने का प्रयास करें
wc -l ~/.ssh/authorized_keys
यह फ़ाइल में लाइनों की संख्या का प्रिंट आउट लेगा। उस संख्या की तुलना करें, जिसके साथ आप फ़ाइल में रहने की अपेक्षा करते हैं। यदि आप केवल इस एक कुंजी को स्वीकार कर रहे हैं, तो आप सार्वजनिक कुंजी फ़ाइल की एक प्रति भी बना सकते हैं, क्योंकि यह आपकी अधिकृत कुंजी फ़ाइल के समान प्रारूप है। कुछ ऐसा
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
या, यदि आपके पास उसी सिस्टम पर आपकी सार्वजनिक कुंजी है जो आप कर सकते हैं
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys

इसके अतिरिक्त, दूरस्थ होस्ट पर लॉग फ़ाइल में देखें और देखें कि क्या कोई त्रुटि बताई जा रही है। फाइलें सबसे अधिक संभावना होगी /var/log/secure.logया /var/log/auth


1
नमस्ते, यहाँ आपके प्रयास के लिए धन्यवाद। मैं उसकी सराहना करता हूं। यह निश्चित रूप से एक अनुमति समस्या नहीं है। मैंने सत्यापित किया है कि अनुमति सही है। (मुझे इसे एक चेतावनी के रूप में जोड़ा जाना चाहिए)। इसके अलावा, हालांकि मैं अभी मूल कुंजी तक नहीं पहुंच सकता, लेकिन मैंने उस प्रक्रिया की नकल की है जिसका उपयोग मैं उस कुंजी की नकल करने के लिए कर रहा हूं जिसका मैं उपयोग कर रहा हूं। मैंने यह भी सत्यापित करने के लिए एक md5sum किया कि फाइलें समान हैं। सही बात?
केविन

1
और फिर, मैं सर्वर तक नहीं पहुँच सकता। संपूर्ण समस्या का प्रकार यहां ...;)
केविन

make a copy of the private key file
@ बहिष्कार

0

हालाँकि, आपको सर्वर से कनेक्ट करने के लिए मशीन 2 के लिए एक नई कुंजी जोड़ी बनाने की संभावना होगी। अक्सर सार्वजनिक कुंजी उन लोगों के उपयोगकर्ता और मशीन का नाम सूचीबद्ध करेगी जो उन्हें उत्पन्न करते हैं। यह सर्वर पर आपकी अधिकृत_की फ़ाइल में स्पष्ट होना चाहिए।


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

0

आपके द्वारा दिए गए डिबग संदेशों का अर्थ है कि एक निजी कुंजी फ़ाइल को इस धारणा के साथ पढ़ा जाता है कि यह वास्तव में एक सार्वजनिक कुंजी / अधिकृत होस्ट फ़ाइल है। यह एक घातक त्रुटि नहीं हो सकती है (मुझे काम करने वाले कनेक्शन के लिए भी ऐसे संदेश मिलते हैं)। क्या यह "भेंट" या "हमने भेजा" के बारे में कुछ कहता है?


-3

दो सर्वरों के बीच ssh कॉन्फिग फाइलों की तुलना करने की कोशिश करें।

अर्थात। बिल्ली / आदि / sshd_config जैसी कुछ


मुझे और अधिक स्पष्ट होना चाहिए था। दो ग्राहक हैं, एक सर्वर। मैं सर्वर, या अन्य क्लाइंट मशीन तक नहीं पहुँच सकता। मैं जैसे ही इस लानत कुंजी को प्रमाणित करूंगा, मैं सर्वर तक पहुंच सकूंगा;)
केविन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.