उचित .ssh/config अनुमतियां सेट करना

Setting Proper Ssh Config Permissions



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

SSH फ़ाइलें में संग्रहीत हैं एसएसएचओ फ़ोल्डर। यह एक हिडन फोल्डर है जो होम डायरेक्टरी में रहता है। NS एसएसएचओ निर्देशिका डिफ़ॉल्ट रूप से नहीं बनाई गई है; यह तब बनाया जाता है जब आप किसी दूरस्थ होस्ट के साथ कनेक्शन शुरू करते हैं या इसका उपयोग करते हैं एसएसएच-कीजेन जब आप चाहें तब निजी और सार्वजनिक प्रमाणीकरण कुंजी उत्पन्न करने का आदेश पासवर्ड रहित ssh प्रमाणीकरण सेट करें।







NS एसएसएचओ फ़ोल्डर। आवश्यक SSH फ़ाइलें शामिल हैं जैसे:



  1. सार्वजनिक और निजी कुंजी ( id_rsa और id_rsa.pub )
  2. NS ज्ञात_मेजबान फ़ाइल - आपके द्वारा कनेक्ट किए गए सभी रिमोट सिस्टम की सार्वजनिक कुंजी शामिल है।
  3. NS कॉन्फ़िग क्लाइंट कॉन्फ़िगरेशन फ़ाइल

अगर कॉन्फ़िग फ़ाइल मौजूद नहीं है, आप दिखाए गए अनुसार आसानी से एक बना सकते हैं।



$ स्पर्श ~/.ssh/config

.ssh/config क्लाइंट कॉन्फ़िगरेशन फ़ाइल

हर बार जब आप SSH कनेक्शन शुरू करते हैं, तो आपको IP पता या डोमेन नाम और पोर्ट SSH सुन रहा है जैसे विवरण निर्दिष्ट करने की आवश्यकता होती है। उदाहरण के लिए,

$ एसएसएच [ईमेल संरक्षित] -पी 22

इस तरह के विवरणों को हमेशा याद रखना व्यस्त हो सकता है। और यहीं ~/.ssh/config फ़ाइल आती है ~/.ssh/config फ़ाइल एक कॉन्फ़िगरेशन फ़ाइल है जो आपको दूरस्थ होस्ट के प्रति-उपयोगकर्ता कॉन्फ़िगरेशन विवरण को कॉन्फ़िगर करने की अनुमति देती है। यह आपको कनेक्शन के लिए आवश्यक प्रति-होस्ट विवरण को हमेशा याद रखने की पीड़ा से बचाता है।

दिखाए गए अनुसार एक नमूना कॉन्फ़िगरेशन फ़ाइल दिखाई देती है।

होस्ट स्टेजिंग-सर्वर
होस्टनाम 192.168.2.103
उपयोगकर्ता जेम्स
पोर्ट 22

रिमोट होस्ट में एक साधारण SSH कमांड इस प्रकार दिखाई देगा:

$ ssh स्टेजिंग-सर्वर

.ssh/config फ़ाइल अनुमतियाँ

डिफ़ॉल्ट रूप से, ~/.ssh/config क्लाइंट कॉन्फ़िगरेशन फ़ाइल के पास है ६४४ फ़ाइल अनुमतियाँ। आप सत्यापित कर सकते हैं कि का उपयोग करके एलएस -ला निम्नानुसार आदेश।

$ ls -la ~ / .ssh / config

इसका तात्पर्य यह है कि फ़ाइल के स्वामी और समूह दोनों के पास पढ़ने और लिखने की अनुमति (rw) है, जबकि अन्य उपयोगकर्ताओं के पास केवल पढ़ने की अनुमति (r) है।

-आरडब्ल्यू-आरडब्ल्यू-आर--

ध्यान दें:

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

यहां, कॉन्फिग फाइल को 666 परमिशन दी गई थी। इसका मतलब है कि हर कोई फाइल को पढ़ और लिख सकता है।

इसी तरह, वही मामला यहां लागू होता है जहां फ़ाइल को 777 अनुमतियां सौंपी गई हैं। इसका तात्पर्य है कि हर कोई फ़ाइल को पढ़, लिख और निष्पादित कर सकता है। सीधे शब्दों में कहें, किसी के पास संभावित खतरनाक फ़ाइल के सभी अधिकार हैं।

सर्वोत्तम अभ्यास अनुशंसा करता है कि आप डिफ़ॉल्ट अनुमतियों को यहां छोड़ दें 664 या 600, जहां केवल मालिक के पास पढ़ने और लिखने की अनुमति (rw) है। इस तरह, फ़ाइल अनधिकृत उपयोगकर्ताओं द्वारा संशोधित होने से सुरक्षित रहती है।

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

नीचे दिए गए उदाहरण में, ~/.ssh/config स्वामित्व सेट कर दिया गया है बॉब: बॉब।

इस समस्या को हल करने के लिए, मैं का उपयोग करके मूल फ़ाइल स्वामित्व पर वापस लौट आया चाउन आदेश।

$ sudo chown James: James ~/.ssh/config

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

$ ssh स्टेजिंग-सर्वर

और आपको बस पर अनुमतियाँ सेट करने के बारे में जानने की आवश्यकता है ~/.ssh/config फ़ाइल। सुनिश्चित करें कि आप बाकी उपयोगकर्ताओं के लिए पढ़ने की अनुमति सेट नहीं करते हैं और सुनिश्चित करें कि आप फ़ाइल के स्वामी हैं।