क्या आपकी सार्वजनिक SSH कुंजियाँ आपको कठिन समय दे रही हैं? इनमें से कोई एक समाधान आज़माएँ.

SSH दूरस्थ मशीनों से कनेक्ट करने के लिए एक उपयोगी उपकरण है, लेकिन आप लिनक्स पर अपनी सार्वजनिक कुंजी को शामिल करते हुए "अनुमति अस्वीकृत (पब्लिककी)" त्रुटि का सामना कर सकते हैं। सौभाग्य से, कुछ आसान समाधान हैं जिनसे आप इसका निवारण करने का प्रयास कर सकते हैं।

सार्वजनिक कुंजी क्या है?

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

इस पद्धति का लाभ यह है कि आपको केवल सार्वजनिक कुंजी देनी होगी। जब तक आप अपनी निजी कुंजी को निजी रखते हैं, तब तक आपकी सार्वजनिक कुंजी के साथ छेड़छाड़ होने की स्थिति में यह आपको सुरक्षित रखेगा। सार्वजनिक कुंजी अपने आप बेकार हो जाएगी.

ओपनएसएसएच, ओपन सोर्स दुनिया में सबसे व्यापक रूप से उपयोग किया जाने वाला एसएसएच क्लाइंट और सर्वर है, जिसमें किसी भी फ़ाइल की आवश्यकता होती है कुछ अनुमतियाँ प्राप्त करने के लिए, रिमोट मशीन पर सार्वजनिक कुंजियाँ (आपके होम निर्देशिका में ".ssh/authorized_keys")। यदि अन्य उपयोगकर्ताओं के लिए लेखन अनुमतियाँ सेट की गई हैं, तो यह काम नहीं करेगा, जिसे "विश्व-लेखन योग्य" के रूप में जाना जाता है। चूँकि निर्देशिका का नाम एक अवधि (.) से शुरू होता है, यह किसी भी ls सूची में दिखाई नहीं देगा जब तक कि आप इसका उपयोग नहीं करते आज्ञा

instagram viewer
एलएस -ए.

यदि फ़ाइल किसी अन्य कंप्यूटर से कॉपी की गई हो या आपने इसे स्वयं बनाया हो तो अनुमतियाँ बदल सकती हैं। सौभाग्य से, इसे ठीक करना आसान है।

अपनी सार्वजनिक कुंजी अनुमतियाँ जाँचें

अधिकृत_कीज़ फ़ाइल बस एक सादा-पाठ फ़ाइल है जिसमें ग्राहकों की सभी सार्वजनिक कुंजियाँ शामिल हैं जिन्हें आप रिमोट मशीन पर अपने खाते में लॉग इन करने में सक्षम होना चाहते हैं। इसकी अनुमतियाँ देखने के लिए, ls कमांड का उपयोग करें -l विकल्प के साथ:

ls -l ~/.ssh/authorized_keys

यह स्वामी, समूह और अन्य उपयोगकर्ताओं के लिए अनुमति सेटिंग्स दिखाएगा। स्ट्रिंग के अंतिम छह अक्षरों पर ध्यान दें। यदि आप उनमें "w" देखते हैं, तो इसका मतलब है कि समूह या अन्य लोग इसे लिख सकते हैं, जिससे यह असुरक्षित हो जाएगा।

आप चाहेंगे कि यह फ़ाइल आपके द्वारा लिखने योग्य हो, लेकिन समूह या अन्य द्वारा नहीं। सही उपयोगकर्ताओं तक पहुंच प्रदान करने के लिए, आप chmod के साथ अनुमतियाँ बदल सकते हैं.

इसके दो तरीके हैं: संख्यात्मक रूप से और प्रतीकात्मक रूप से।

संख्यात्मक तरीका छोटा है, लेकिन आपको अष्टक अनुमति संख्याओं को याद रखना होगा:

chmod 700 ~/.ssh/authorized_keys

प्रतीकात्मक विधि अधिक स्मरणीय है:

chmod go-w ~/.ssh/authorized_keys

ssh-एजेंट का उपयोग करके सुरक्षित रूप से कुंजियाँ कॉपी करें

आप अपनी मशीन से किसी भी सार्वजनिक कुंजी को मैन्युअल रूप से कॉपी और पेस्ट कर सकते हैं ~/.ssh/.authorized_keys फ़ाइल, लेकिन ssh-एजेंट प्रोग्राम का उपयोग करने से किसी भी अनुमति त्रुटि की संभावना कम हो जाएगी।

Ssh-एजेंट प्रारंभ करने के लिए, इस कमांड का उपयोग करें:

eval "$(ssh-agent-s)"

Ssh-एजेंट का उपयोग करके किसी दूरस्थ सर्वर में लॉग इन करने के लिए, ssh के साथ -A विकल्प का उपयोग करें

ssh -A [email protected]

रिमोट सर्वर की sshd सेटिंग्स की जाँच करें

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

Sshd के लिए सिस्टम-व्यापी कॉन्फ़िगरेशन फ़ाइल है /etc/ssh/sshd_config. चूँकि इसका स्वामित्व रूट के पास है, इसलिए आपको इसे संपादित करने के लिए sudo का उपयोग करना होगा। उदाहरण के लिए, इसे विम के साथ संपादित करने के लिए:

sudo vim /etc/ssh/sshd_config

sshd को सक्षम करने के लिए ताकि आप लॉग इन कर सकें, भले ही आपकी अधिकृत_की फ़ाइल विश्व-लेखन योग्य हो, इस फ़ाइल में "स्ट्रिक्टमोड्स" विकल्प को "नहीं" पर सेट करें।

इसे सहेजें और SSH सर्वर को पुनरारंभ करें:

sudo systemctl restart sshd.service

अब आप SSH सार्वजनिक कुंजी अनुमतियाँ त्रुटियों को ठीक कर सकते हैं

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