काम करने के लिए SSH सार्वजनिक कुंजी प्रमाणीकरण प्राप्त नहीं कर सकता है [बंद]


41

मेरा सर्वर CentOS 5.3 चला रहा है। मैं एक मैक पर तेंदुआ चल रहा हूँ। मुझे नहीं पता कि इसके लिए कौन जिम्मेदार है:

मैं पासवर्ड प्रमाणीकरण के माध्यम से अपने सर्वर पर लॉग इन कर सकता हूं। मैं PKA की स्थापना के लिए सभी चरणों से गुजर चुका हूं (जैसा कि http://www.centos.org/docs/5/html/Deployment_Guide-en-US/US1-ssh-beyondshell.html पर वर्णित है ), लेकिन जब मैं SSH का उपयोग करता हूं, यह publickey सत्यापन का भी प्रयास करने से इनकार करता है। कमांड का उपयोग करना

ssh -vvv user@host

(जहां -vvv अधिकतम स्तर तक क्रियाशीलता को बढ़ाता है) मुझे निम्नलिखित प्रासंगिक आउटपुट मिलते हैं:

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

मेरे पासवर्ड के लिए एक संकेत के बाद। अगर मैं इस मुद्दे को बल देने की कोशिश करता हूं

ssh -vvv -o PreferredAuthentications=publickey user@host

मुझे मिला

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.

इसलिए, भले ही सर्वर कहता है कि यह पबलीके प्रमाणीकरण पद्धति को स्वीकार करता है, और मेरा एसएसएच क्लाइंट इस पर जोर देता है, मैं फटकार लगा रहा हूं। ("सार्वजनिक कुंजी की पेशकश:" लाइन के स्पष्ट अनुपस्थिति पर ध्यान दें।) कोई सुझाव?

ssh 

बस "ssh -v" का उपयोग करें आपको अधिक वाचालता की आवश्यकता नहीं है और पूरे आउटपुट को शामिल करें न कि आपके द्वारा
समझी

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

जवाबों:


44

जांचें कि आपकी Centos मशीन में क्या है:

RSAAuthentication yes
PubkeyAuthentication yes

sshd_config में

और सुनिश्चित करें कि आपके पास सेंटोस मशीन के ~ / .ssh / निर्देशिका पर उचित अनुमति है।

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

चाल चलनी चाहिए।


1
सही अधिकार और फ़ाइल नाम (कभी-कभी अधिकृत_की 2, कभी-कभी 2 के बिना) बहुत महत्वपूर्ण है!
ब्रांडस्टैटर

4
फ़ाइल अधिकृत_की अनुमति बहुत महत्वपूर्ण संकेत है। धन्यवाद।
केन

7
chmod go-w ~/यह पहले से ही ऐसा नहीं है, तो आपको इसकी आवश्यकता भी हो सकती है।
टायलरल

1
यह भी जांचें कि क्या आपके घर के रिमोट सर्वर पर अनुमतियाँ हैं 755(जैसा कि नीचे जिन्नू लियू का उल्लेख है)
अत्तिला फुलोप

1
अन्य ऑपरेटिंग सिस्टम में SSH कॉन्फिग फ़ाइल भी /etc/ssh/ssh_config
निम्नानुसार

17

मुझे एक समान समस्या थी - रिमोट पीसी सेंटो 6 सर्वर में लॉग इन करने के लिए सार्वजनिक कुंजी प्रमाणीकरण का उपयोग नहीं कर सकता था। मेरे मामले में समस्या SELinux संबंधित थी - सुरक्षा संदर्भों में संदेश में लॉग इन करने की कोशिश करने वाले उपयोगकर्ता की होम निर्देशिका। मैंने इस restoreconउपकरण का उपयोग करके इसे हल किया :

restorecon -Rv /home

2
धन्यवाद, गैरेथ! "restorecon -Rv /root/.ssh" ने अच्छी तरह से चाल चली।
tbroberg

आगे समझाने के लिए: यह कमांड SELinux को फ़ाइलों के लिए SELinux टैग्स को रीसेट करने के लिए कह रही /homeहै जो वे आमतौर पर निर्देशिका लेआउट में हैं /home
rakslice

यदि आप रूट के रूप में लॉग इन कर रहे हैं, तो यह होना चाहिएrestorecon -Rv /root
Youfu

13

1- अपने / etc / ssh / sshd_config की जाँच करें, सुनिश्चित करें कि आपके पास है

RSAAuthentication हाँ
पब्कुअथेंटिकेशन हाँ

2- रिमोट मशीन से सुरक्षित लॉग की जांच करें, विवरण sshd डेमॉन त्रुटि लॉग देखें। मेरे उबंटू में जैसे

# grep 'sshd' / var / log / safe | grep 'प्रमाणीकरण ने मना कर दिया' | पूंछ -5
अगस्त 4 06:20:22 xxx sshd [16860]: प्रमाणीकरण ने इनकार कर दिया: निर्देशिका के लिए खराब स्वामित्व या मोड / होम / xxx
अगस्त 4 06:20:22 xxx sshd [16860]: प्रमाणीकरण ने इनकार कर दिया: निर्देशिका के लिए खराब स्वामित्व या मोड / होम / xxx
अगस्त 4 06:21:21 xxx sshd [17028]: प्रमाणीकरण ने इनकार कर दिया: निर्देशिका के लिए खराब स्वामित्व या मोड / होम / xxx
अगस्त 4 06:21:21 xxx sshd [17028]: प्रमाणीकरण ने इनकार कर दिया: निर्देशिका के लिए खराब स्वामित्व या मोड / होम / xxx
अगस्त 4 06:27:39 xxx sshd [20362]: प्रमाणीकरण ने इनकार कर दिया: निर्देशिका के लिए खराब स्वामित्व या मोड / होम / xxx

फिर निर्देशिका / होम / xxx के लिए स्वामित्व और मोड की जांच करें, हो सकता है कि आपको इसे चलाने की आवश्यकता हो

chmod 755 / घर / xxx

1
सिस्टम की लॉग फ़ाइल की जाँच एक बहुत ही महत्वपूर्ण संकेत है।
केन

1
755 के घर निर्देशिका परमिट ने मेरी मदद की - निश्चित रूप से आवश्यक!
बेन

11

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

क्या आपने चेक किया है कि आपके CentOS 5.3 बॉक्स पर sshd_config को PubkeyAuthentication या RSAAuthentication की अनुमति देने के लिए सेट किया गया है?

CentOS सिस्टम पर SSH सर्वर लॉग की जाँच करें - यह अधिक जानकारी प्रदान कर सकता है। मुझे यकीन नहीं है कि अगर CentOS ब्लैक लिस्टेड ssh की जाँच कर रहा है जो कि डेबियन करता है, लेकिन मैंने ssh publickey को अस्वीकार कर दिया है जो कि अपेक्षाकृत चुप रहता है जहाँ तक -vvv आउटपुट जाता है, लेकिन लॉग बहुत स्पष्ट रूप से समझाते हैं कि क्या चल रहा था


7

समझ गया! यह ग्राहक-पक्ष का मुद्दा था। (मुझे लगता है कि किसी भी सर्वर-साइड मुद्दे से अधिक उपयोगी डिबग आउटपुट प्राप्त होगा।) मेरे लिए अज्ञात कारणों से, मेरे मैक पर, फ़ाइल / etc / ssh_config की लाइन थी

PubkeyAuthentication = no

मैंने टिप्पणी की कि एक पंक्ति, और अब सब कुछ ठीक है।


4

फ़ाइलों / निर्देशिकाओं के मोड के अलावा, सुनिश्चित करें कि स्वामित्व सही है! एक उपयोगकर्ता को अपने स्वयं के घर निर्देशिका, .sh / और फ़ाइलों को स्वयं करना चाहिए।

मुझे chown -R $user:$user /home/$userअपनी ssh असफलताओं को पाने के लिए दौड़ना पड़ा ।


+1, मेरे सिस्टम में से एक पर .ssh की अनुमति सही थी लेकिन किसी ने खाते की होम डायरेक्टरी 777 कर दी थी।
गर्गानुचेट

2

यह भी देख लें कि यह एक कुंजी की आपूर्ति कर सकता है या नहीं, उपयोग -i पथ / to / key यदि नहीं या केवल परीक्षण करने के लिए


2

मेरे लिए एक कॉन्फ़िगरेशन समस्या की तरह लगता है। जैसे डैनियल ने सुझाव दिया कि जाँच करने के लिए दो चीजें हैं:

  1. SSH कुंजियाँ $HOME/.ssh/authorized_keysपठनीय हैं; तथा
  2. SSHd को सार्वजनिक कुंजी लॉगिन की अनुमति देने के लिए कॉन्फ़िगर किया गया है।

2

उस उपयोगकर्ता नाम की जांच करें जिसमें आप लॉग इन करने का प्रयास कर रहे हैं। डिफ़ॉल्ट रूप से यह स्थानीय मशीन पर आपका उपयोगकर्ता नाम है।


1

क्लाइंट के आउटपुट के रूप में ssh -vप्रकट होगा कि प्रोटोकॉल में एक निश्चित कदम पर कोई समस्या है, लेकिन जब यह सर्वर पर किसी चीज़ के कारण होता है तो क्लाइंट को कारण के बारे में सूचित नहीं किया जाएगा। क्या गलत है, यह जानने के लिए सर्वर लॉग फ़ाइलों की जाँच करें। ऐसा rootकरने के लिए आपके पास अनुमतियाँ होने की आवश्यकता है। उदाहरण के लिए, एक sshdलॉग इन syslog करने के लिए, आपको संदेश मिल सकते हैं /var/log/secure। इन लोगों की तरह:

Authentication refused: bad ownership or modes for directory /home/you/.ssh
Authentication refused: bad ownership or modes for file /home/you/.ssh/authorized_keys

इस मामले में कारण का एक (बेवकूफ) डिफ़ॉल्ट defaultथा 0002। इसका मतलब है, समूह के लिए पहुँच लिखें। (Groupname = उपयोगकर्ता नाम, लेकिन अभी भी।) SSH डेमन उन फ़ाइलों पर भरोसा नहीं करेगा, जो उपयोगकर्ता (अच्छी तरह से, और rootनिश्चित रूप से) की तुलना में दूसरों द्वारा छेड़छाड़ की जा सकती हैं । आप समस्या का समाधान कर सकते हैं chmod

chmod 700 ~/.ssh # solve the issue
chmod 720 ~/.ssh # reproduce the issue
# or similar for a file

1

मैं सिर्फ फेडोरा कोर 16 के साथ 5.5 सेंट तक पहुँचने में एक ही समस्या में फंस गया

लॉग और वर्बोज़ बिल्कुल एक जैसे दिखते थे

समस्या सार्वजनिक कुंजी थी, इसे कुछ फर्जी डेटा मिला, इसे फिर से बनाएँ और इसे sshd_server में पोस्ट करें, आप sshd_client प्रमुख जानकारी भेज रहे हैं, लेकिन सर्वर द्वारा मान्यता प्राप्त नहीं है (यह अधिकृत_की में किसी भी कुंजी से मेल नहीं खाता है)


-2

एक और ने इसे काट लिया। एक लंबी खोज के बाद यह पता चला कि मैं निजी कुंजी के बजाय सार्वजनिक कुंजी (-i विकल्प के साथ) को खिला रहा था। रवींद्र!

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