अपने लिनक्स पीसी पर ओपनएसएसएच के इन्स और आउट जानें

विषयसूची:

अपने लिनक्स पीसी पर ओपनएसएसएच के इन्स और आउट जानें
अपने लिनक्स पीसी पर ओपनएसएसएच के इन्स और आउट जानें
Anonim
सुरक्षा और रिमोट एक्सेस दोनों के लिए हमने कई बार एसएसएच के गुणों को प्रशंसा की है। आइए सर्वर को स्वयं देखें, कुछ महत्वपूर्ण "रखरखाव" पहलुओं, और कुछ क्विर्क जो अन्यथा चिकनी सवारी में अशांति जोड़ सकते हैं।
सुरक्षा और रिमोट एक्सेस दोनों के लिए हमने कई बार एसएसएच के गुणों को प्रशंसा की है। आइए सर्वर को स्वयं देखें, कुछ महत्वपूर्ण "रखरखाव" पहलुओं, और कुछ क्विर्क जो अन्यथा चिकनी सवारी में अशांति जोड़ सकते हैं।

जबकि हमने लिनक्स के साथ इस गाइड को दिमाग में लिखा है, यह सिगविन के माध्यम से मैक ओएस एक्स और विंडोज 7 में ओपनएसएसएच पर भी लागू हो सकता है।

यह सुरक्षित क्यों है

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

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

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

अब, एसएसएल एन्क्रिप्शन को देखें, जिस तरह से HTTP अधिक सुरक्षित बनाता है। यहां, हमारे पास एक डाकघर है जो पत्राचार को संभालता है, जो यह देखने के लिए जांच करता है कि क्या आपका प्राप्तकर्ता वह है या नहीं, और आपके मेल को देखने से रोकने वाले कानून हैं। यह अधिक सुरक्षित है, और केंद्रीय प्राधिकरण - हमारे HTTPS उदाहरण के लिए Verisign एक है - यह सुनिश्चित करता है कि जिस व्यक्ति को आप चेक भेजने के लिए मेल भेज रहे हैं। वे पोस्टकार्ड (अनएन्क्रिप्टेड प्रमाण-पत्र) की अनुमति नहीं देकर ऐसा करते हैं; इसके बजाय वे असली लिफाफे जरूरी हैं।

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

जब तक यह स्पष्टीकरण के साथ, हम सोचते हैं कि हम इसे वहां काट लेंगे। यदि आपके पास कुछ और अंतर्दृष्टि है, तो निश्चित रूप से टिप्पणियों में चैट करने में संकोच न करें। अभी के लिए, आइए, एसएसएच, मेजबान प्रमाणीकरण की सबसे प्रासंगिक विशेषता देखें।

मेजबान कुंजी

मेजबान प्रमाणीकरण अनिवार्य रूप से वह हिस्सा है जहां आप भरोसा करते हैं वह लिफाफा लेता है (जादू गणित के साथ मुहरबंद) और आपके प्राप्तकर्ता का पता पुष्टि करता है। यह पते का एक विस्तृत विस्तृत विवरण है, और यह कुछ जटिल गणित पर आधारित है कि हम अभी ठीक से छोड़ देंगे। इससे कुछ दूर करने के लिए कुछ महत्वपूर्ण चीजें हैं, हालांकि:

  1. चूंकि कोई केंद्रीय प्राधिकरण नहीं है, वास्तविक सुरक्षा मेजबान कुंजी, सार्वजनिक कुंजी और निजी कुंजी में निहित है। (जब आप सिस्टम तक पहुंच प्रदान करते हैं तो ये बाद वाली दो कुंजी कॉन्फ़िगर की जाती हैं।)
  2. आमतौर पर, जब आप किसी अन्य कंप्यूटर से एसएसएच के माध्यम से कनेक्ट होते हैं, तो मेजबान कुंजी संग्रहित होती है। इससे भविष्य की कार्रवाइयां तेज हो जाती हैं (या कम वर्बोज़)।
  3. यदि मेजबान कुंजी बदलती है, तो आपको अधिकतर सतर्क किया जाएगा और आपको सावधान रहना चाहिए!

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

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

अपने सिस्टम की होस्ट कुंजी की जांच कर रहा है

कुंजी बनाने के लिए 4 प्रकार के एन्क्रिप्शन एल्गोरिदम उपयोग किए जाते हैं, लेकिन इस साल के शुरू में ओपनएसएसएच के लिए डिफ़ॉल्ट ईसीडीएसए (कुछ अच्छे कारणों से) है। हम उस पर ध्यान केंद्रित करेंगे।यहां वह आदेश है जिसे आप उस एसएसएच सर्वर पर चला सकते हैं जिस पर आपके पास पहुंच है:

ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

आपके आउटपुट को इस तरह कुछ वापस करना चाहिए:

256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub

पहला नंबर कुंजी की बिट-लम्बाई है, फिर कुंजी ही है, और आखिर में आपके पास उस फ़ाइल को संग्रहीत किया गया है। उस मध्य भाग की तुलना करें जब आप दूरस्थ रूप से लॉग इन करने के लिए कहा जाए तो उस चीज़ को तुलना करें। यह मेल खाना चाहिए, और आप सब तैयार हैं। यदि ऐसा नहीं होता है, तो कुछ और हो रहा है।

आप अपने ज्ञात_होस्ट फ़ाइल को देखकर एसएसएच के माध्यम से जुड़े सभी होस्ट देख सकते हैं। यह आमतौर पर स्थित है:

~/.ssh/known_hosts

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

मेजबान कुंजी और समस्याएं बदलना

मेजबान कुंजी बदलने के कुछ कारण हैं या वे आपकी ज्ञात_होस्ट फ़ाइल में जो लॉग इन हैं उससे मेल नहीं खाते हैं।

  • सिस्टम को पुनः स्थापित / पुनः कॉन्फ़िगर किया गया था।
  • सुरक्षा प्रोटोकॉल के कारण मेजबान कुंजी मैन्युअल रूप से बदल दी गई थी।
  • OpenSSH सर्वर अद्यतन और सुरक्षा समस्याओं के कारण विभिन्न मानकों का उपयोग कर रहा है।
  • आईपी या डीएनएस पट्टा बदल गया। इसका अक्सर मतलब है कि आप एक अलग कंप्यूटर तक पहुंचने का प्रयास कर रहे हैं।
  • इस प्रणाली को किसी तरह से समझौता किया गया था जैसे मेजबान कुंजी बदल गई।

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

ओपनएसएसएच अज्ञात होस्ट कैसे संभालता है

ओपनएसएसएच में यह सेटिंग है कि यह अज्ञात मेजबानों को कैसे प्रबंधित करता है, जो "StrictHostKeyChecking" चर (उद्धरण के बिना) में दिखाई देता है।
ओपनएसएसएच में यह सेटिंग है कि यह अज्ञात मेजबानों को कैसे प्रबंधित करता है, जो "StrictHostKeyChecking" चर (उद्धरण के बिना) में दिखाई देता है।

आपकी कॉन्फ़िगरेशन के आधार पर, अज्ञात होस्ट्स के साथ एसएसएच कनेक्शन (जिनकी कुंजी पहले से ही आपकी ज्ञात_होस्ट फ़ाइल में नहीं हैं) तीन तरीकों से जा सकती हैं।

  • StrictHostKey चेकिंग को सेट किया गया है; मेजबान कुंजी स्थिति के बावजूद ओपनएसएसएच किसी भी एसएसएच सर्वर से स्वचालित रूप से कनेक्ट हो जाएगा। यह असुरक्षित है और अनुशंसित नहीं है, सिवाय इसके कि यदि आप अपने ओएस की पुनर्स्थापित करने के बाद मेजबानों का एक समूह जोड़ रहे हैं, जिसके बाद आप इसे वापस बदल देंगे।
  • StrictHostKey चेकिंग पूछने के लिए सेट है; ओपनएसएसएच आपको नई मेजबान कुंजी दिखाएगा और उन्हें जोड़ने से पहले पुष्टि के लिए पूछेगा। यह कनेक्शन को मेजबान कुंजियों में बदलने से रोक देगा। यह डिफ़ॉल्ट है।
  • StrictHostKey चेकिंग हाँ पर सेट है; "नहीं," के विपरीत यह आपको किसी ऐसे होस्ट से कनेक्ट करने से रोक देगा जो आपकी ज्ञात_होस्ट फ़ाइल में पहले से मौजूद नहीं है।

आप निम्न प्रतिमान का उपयोग कर कमांड लाइन पर आसानी से इस चर को बदल सकते हैं:

ssh -o 'StrictHostKeyChecking [option]' user@host

[विकल्प] को "नहीं," "पूछें," या "हां" के साथ बदलें। ध्यान रखें कि इस चर के आस-पास एक ही सीधे उद्धरण और इसकी सेटिंग है। उपयोगकर्ता द्वारा होस्ट किए जा रहे सर्वर के उपयोगकर्ता नाम और होस्ट नाम के साथ उपयोगकर्ता @ होस्ट को भी प्रतिस्थापित करें। उदाहरण के लिए:

ssh -o 'StrictHostKeyChecking ask' [email protected]

बदली हुई कुंजी के कारण अवरुद्ध मेजबान

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

यह निश्चित रूप से आपकी स्क्रीन पर एक बदसूरत चीज है। सौभाग्य से, इसके लिए हमारा कारण एक पुनर्स्थापित ओएस था। तो, हमें जिस लाइन की आवश्यकता है उस पर ज़ूम इन करें।
यह निश्चित रूप से आपकी स्क्रीन पर एक बदसूरत चीज है। सौभाग्य से, इसके लिए हमारा कारण एक पुनर्स्थापित ओएस था। तो, हमें जिस लाइन की आवश्यकता है उस पर ज़ूम इन करें।
हम वहाँ चलें। देखें कि यह उस फ़ाइल को कैसे उद्धृत करता है जिसे हमें संपादित करने की आवश्यकता है? यह हमें लाइन नंबर भी देता है! तो, आइनो में उस फाइल को खोलें:
हम वहाँ चलें। देखें कि यह उस फ़ाइल को कैसे उद्धृत करता है जिसे हमें संपादित करने की आवश्यकता है? यह हमें लाइन नंबर भी देता है! तो, आइनो में उस फाइल को खोलें:
Image
Image
यहां हमारी अपमानजनक कुंजी है, लाइन 1 में। हमें बस इतना करना है कि पूरी लाइन को काटने के लिए Ctrl + K दबाएं।
यहां हमारी अपमानजनक कुंजी है, लाइन 1 में। हमें बस इतना करना है कि पूरी लाइन को काटने के लिए Ctrl + K दबाएं।
यह ज़्यादा बेहतर है! तो, अब हम फ़ाइल को लिखने (सहेजने) के लिए Ctrl + O दबाते हैं, फिर बाहर निकलने के लिए Ctrl + X दबाते हैं।
यह ज़्यादा बेहतर है! तो, अब हम फ़ाइल को लिखने (सहेजने) के लिए Ctrl + O दबाते हैं, फिर बाहर निकलने के लिए Ctrl + X दबाते हैं।

अब हमें इसके बजाय एक अच्छा संकेत मिलता है, जिसके लिए हम बस "हां" के साथ जवाब दे सकते हैं।

Image
Image

नई होस्ट कुंजी बनाना

रिकॉर्ड के लिए, वास्तव में आपके मेजबान कुंजी को बदलने के लिए बहुत अधिक कारण नहीं है, लेकिन यदि आपको कभी भी आवश्यकता मिलती है, तो आप आसानी से कर सकते हैं।

सबसे पहले, उपयुक्त सिस्टम निर्देशिका में बदलें:

cd /etc/ssh/

यह आमतौर पर है जहां वैश्विक होस्ट कुंजी हैं, हालांकि कुछ distros उन्हें कहीं और रखा है। संदेह में जब आपके दस्तावेज की जांच करें!

इसके बाद, हम सभी पुरानी चाबियाँ हटा देंगे।

sudo rm /etc/ssh/ssh_host_*

वैकल्पिक रूप से, आप उन्हें एक सुरक्षित बैकअप निर्देशिका में ले जाना चाहते हैं। सिर्फ एक विचार!

फिर, हम OpenSSH सर्वर को स्वयं को पुन: कॉन्फ़िगर करने के लिए बता सकते हैं:

sudo dpkg-reconfigure openssh-server

जब आपका कंप्यूटर अपनी नई कुंजी बनाता है तो आपको एक प्रॉम्प्ट दिखाई देगा। टा-दा!

Image
Image

अब जब आप जानते हैं कि एसएसएच थोड़ा बेहतर कैसे काम करता है, तो आपको खुद को कठिन धब्बे से बाहर निकालने में सक्षम होना चाहिए। "दूरस्थ होस्ट पहचान बदल गई है" चेतावनी / त्रुटि ऐसी चीज है जो बहुत से उपयोगकर्ताओं को फेंकता है, यहां तक कि जो कमांड लाइन से परिचित हैं।

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

सिफारिश की: