एसएसएच सार्वजनिक कुंजी-कोई समर्थित प्रमाणीकरण विधियां उपलब्ध नहीं हैं (सर्वर ने सार्वजनिक कुंजी भेजी)

मेरे पास वर्चुअल मशीन में 12.10 सर्वर सेटअप है, जिसके नेटवर्क को ब्रिज करने के लिए सेट किया गया है (अनिवार्य रूप से मेरे स्विच से जुड़े कंप्यूटर के रूप में देखा जाएगा) ।

मैंने ओपनएसएचडी के माध्यम से स्थापित किया apt-get और मेरे उपयोगकर्ता नाम और पासवर्ड के साथ पोटीन का उपयोग करके सर्वर से कनेक्ट करने में सक्षम था ।

फिर मैंने इसे सार्वजनिक/निजी कुंजी प्रमाणीकरण का उपयोग करने की कोशिश करने के बारे में सेट किया । मैंने निम्नलिखित किया:

  1. उत्पन्न चाबियाँ का उपयोग कर PuttyGen.
  2. सार्वजनिक कुंजी को स्थानांतरित कर दिया /etc/ssh/myusername/authorized_keys (मैं एन्क्रिप्टेड होम निर्देशिकाओं का उपयोग कर रहा हूं) ।
  3. सेट अप करें sshd_config ऐसा ही:

    PubkeyAuthentication yesAuthorizedKeysFile /etc/ssh/%u/authorized_keysStrictModes noPasswordAuthentication noUsePAM yes

जब मैं पुट्टी या विनएससीपी का उपयोग करके कनेक्ट करता हूं, तो मुझे यह कहते हुए एक त्रुटि मिलती है कि कोई समर्थित प्रमाणीकरण विधियां उपलब्ध नहीं हैं (सर्वर ने सार्वजनिक कुंजी भेजी है) ।

अगर मैं दौड़ता हूं sshd डिबग मोड में, मैं देखता हूं:

PAM: initializing for "username"PAM: setting PAM_RHOST to "192.168.1.7"PAM: setting PAM_TTY to "ssh"userauth-request for user username service ssh-connection method publickey [preauth]attempt 1 failures 0 [preauth]test whether pkalg/pkblob are acceptable [preauth[Checking blacklist file /usr/share/ssh/blacklist.RSA-1023Checking blacklist file /etc/ssh/blacklist.RSA-1023temporarily_use_uid: 1000/1000 (e=0/0)trying public key file /etc/ssh/username/authorized_keysfd4 clearing O_NONBLOCKrestore_uid: 0/0Failed publickey for username from 192.168.1.7 port 14343 ssh2Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]do_cleanup [preauth]monitor_read_log: child log fd closeddo_cleanupPAM: cleanup

ऐसा क्यों हो रहा है और मैं इसे कैसे ठीक कर सकता हूं?

समस्या हल हो गई:

ऐसा लगता है कि मेरी सार्वजनिक कुंजी फ़ाइल में कोई समस्या थी । पुट्टीजेन एक सार्वजनिक कुंजी फ़ाइल बनाएगा जो इस तरह दिखती है:

---- BEGIN SSH2 PUBLIC KEY ----Comment: "rsa-key-20121022"AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8=---- END SSH2 PUBLIC KEY ----

हालांकि, यह काम नहीं करेगा, इसलिए आपको जो करने की ज़रूरत है वह पुट्टीजेन में कुंजी खोलना है, और फिर इसे वहां से कॉपी करना है (इसके परिणामस्वरूप कुंजी सही प्रारूप में और 1 पंक्ति में है):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

इसमें पेस्ट करें authorized_keys फिर यह काम करना चाहिए ।

  1. संपादित करें /etc/ssh/sshd_config फ़ाइल।
  2. बदलें PasswordAuthentication और ChallengeResponseAuthentication को yes.

3a. पुनः आरंभ ssh /etc/init.d/ssh restart.
या
3 बी । बेहतर आप उपयोग करते हैं service sshd restart

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

मुझे जो तोड़ने की कम से कम संभावना है, वह है पूर्ण स्ट्रिंग को प्रतिध्वनित करना और आउटपुट को फ़ाइल में पुनर्निर्देशित करना । कुंजी स्ट्रिंग को कमांडलाइन पर पेस्ट करने के लिए पुट्टी में राइट-क्लिक करना, यह इस तरह काम करता है (ऊपर दिए गए उदाहरण के साथ):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

आप इसके साथ समाप्त हो जाएंगे:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

>>>इस पद्धति का एक अन्य लाभ यह है कि आप अधिलेखित करने के बजाय संलग्न करने के लिए इस तरह से कई कुंजियाँ जोड़ सकते हैं, जैसे:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

आशा है कि किसी की मदद करता है ।

हम पहले से ही सही प्रकार की कुंजी (पीईएम के बजाय पीपीके) का उपयोग कर रहे थे । .

हमारे मामले में, यह सर्वर उपयोगकर्ता फ़ोल्डर पर प्राधिकृत _की के लिए फ़ाइल अनुमतियों के साथ एक समस्या थी । यह हो गया है -rw-r-r-- ... यह था -rw-rw-r--

एसएसएच फ़ाइल परमिट के बारे में बहुत बारीक है ।

हल किया:

  1. आपको पुटजेन डाउनलोड करने और एक सार्वजनिक और एक निजी कुंजी उत्पन्न करने की आवश्यकता है ।
  2. मैंने अपनी निजी कुंजी को एक पासवर्ड सौंपा है ।
  3. >>>फिर पोटीन में निजी कुंजी को कॉन्फ़िगर करें । पोटीन-एसएसएच-ऑथ-अपने निजी को ब्राउज़ करें ।
  4. सुनिश्चित करें कि आपके पास निजी और सार्वजनिक कुंजी के लिए समान पथ है ।
  5. आपको सर्वर पर सार्वजनिक कुंजी को कॉन्फ़िगर करना होगा । (मेरे मामले में मैंने सर्वर आदमी के साथ बात की है और पूछा है कि क्या वह सर्वर पर मेरी सार्वजनिक कुंजी जोड़ सकता है) । आपको दूसरी तरफ सार्वजनिक कुंजी की आवश्यकता है (सर्वर) कनेक्शन ।

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

मेरे मामले में, मेरे पास दो एडब्ल्यूएस उदाहरण हैं । उनमें से एक निर्दोष रूप से काम कर रहा है, दूसरा इंटेलीज आईडीईए के माध्यम से कनेक्ट करते समय काम कर रहा है, लेकिन पुटी से नहीं, लेकिन यह शुरुआत में काम कर रहा था । तो मेरे मामले में यह पोटीन के बारे में कुछ होना चाहिए