SSH वास्तव में क्या करता है
हालांकि Splync आपके स्मार्टफोन और हमारे सर्वर के बीच मार्ग की सुरक्षा के लिए HTTPS का उपयोग करता है, हमें अभी भी सर्वर की स्वयं की सुरक्षा की जरूरत होती है ताकि उपयोगकर्ता डेटा की सुरक्षा सुनिश्चित की जा सके। ऐप डेवलपर्स और सिस्टम एडमिनिस्ट्रेटर्स को उस सर्वर में प्रवेश करने का एक तरीका चाहिए ताकि वे सुरक्षित रूप से अपडेट्स को मेंटेन और डिप्लॉय कर सकें। यहीं SSH (सिक्योर शेल) आता है। यह एक प्रोटोकॉल है जो अधिकृत उपयोगकर्ताओं को दूरस्थ कंप्यूटरों में सुरक्षित रूप से लॉग इन करने की अनुमति देता है, यहां तक कि अविश्वसनीय नेटवर्क्स के पार भी। SSH पुराने, असुरक्षित तरीकों जैसे कि टेलनेट को बदल देता है, जो उपयोगकर्ता नाम और पासवर्ड को साधारण पाठ में भेजता था।
“कीज़” के पीछे का विचार
SSH एक साधारण पासवर्ड पर निर्भर नहीं करता। इसके बजाय, यह क्रिप्टोग्राफिक कीज़ का उपयोग करता है — एक सार्वजनिक की और एक निजी की का मेल। इन्हें एक ताले और चाबी के रूप में सोचें जो केवल एक-दूसरे को ही फिट करते हैं। सार्वजनिक की सर्वर पर रहती है, और निजी की उपयोगकर्ता के पास। जब आप कनेक्ट करते हैं, सर्वर आपसे यह साबित करने को कहता है कि आपके पास निजी की है, बिना उसे कभी प्रकट किए। इससे सुनने वालों के लिए आपकी नकल करना लगभग असंभव हो जाता है। जबकि पारंपरिक पासवर्ड अनुमानित, लीक या पुनः उपयोग किए जा सकते हैं, SSH कीज़ लंबी, यादृच्छिक क्रिप्टोग्राफिक स्ट्रिंग्स होती हैं — लगभग अनुवान्शिक। यहां तक कि यदि कोई कनेक्शन को सूंघने में सफल होता है, तो उन्हें केवल एन्क्रिप्टेड शोर ही दिखाई देगा। और चूंकि SSH कीज़ को नेटवर्क पर कभी भेजा नहीं जाता, ट्रांजिट में चोरी करने के लिए कुछ भी नहीं होता।
SSH की असल में कैसी दिखती है
अगर आपने पहले कभी SSH की नहीं देखी है, तो यह अमूर्त लग सकती है — लेकिन यह वास्तव में सिर्फ एक लंबा एन्कोडेड टेक्स्ट ब्लॉक है। एक सार्वजनिक की आमतौर पर कुछ सौ कैरेक्टर लंबी होती है, जबकि एक निजी की एक हजार से अधिक तक पहुँच सकती है। दोनों टेक्स्ट फाइलों के रूप में संग्रहीत होती हैं, लेकिन उनकी सामग्री यादृच्छिक शोर जैसी दिखती है — अक्षरों, संख्याओं और प्रतीकों का मिश्रण। सार्वजनिक की साझा करने के लिए सुरक्षित है; यह सर्वर पर ताला लगाने की तरह है। दूसरी ओर, निजी की आपकी अद्वितीय डिजिटल पहचान है और इसे कभी साझा नहीं करना चाहिए। यह आपके कंप्यूटर पर स्थानीय रूप से संग्रहीत होती है और केवल यह साबित करने के लिए उपयोग की जाती है कि आप वही हैं जो आप दावा करते हैं — बिना स्वयं की चाबी को प्रकट किए।
सार्वजनिक की और निजी की
एक सार्वजनिक की आपके घर पर लगाने वाले ताले की तरह होती है। कोई भी इसे सड़क से देख सकता है, जैसे आपके घर के दरवाजे पर लगा ताला। लेकिन ताले को देखने से किसी को यह नहीं पता चलता कि इसे कैसे खोला जाए। दूसरे शब्दों में, कोई भी इसे देख सकता है, लेकिन केवल सही चाबी इसे खोल सकती है। दूसरी ओर, निजी की वह चाबी है जो ताला खोलती है — और यह सुरक्षित रूप से आपके पास रहती है। अगर किसी और को आपकी निजी की मिल जाती है, तो वे आपके जैसे ही आपके घर में प्रवेश कर सकते हैं। इसलिए इसे हमेशा गुप्त रहना चाहिए।
SSH तंत्र
हर सार्वजनिक की और निजी की एक अद्वितीय एक-से-एक जोड़ी बनाते हैं। वे एक गणितीय प्रक्रिया द्वारा एक साथ उत्पन्न होते हैं ताकि केवल वह विशेष निजी की अपनी संबंधित सार्वजनिक की के साथ मेल खा सके। आप उन्हें एक कस्टम-मेड ताला और चाबी के रूप में सोच सकते हैं — एक साथ तैयार की गई, और दुनिया में कोई अन्य चाबी उस ताले से मेल नहीं खाती। यहां तक कि यदि आप उसी एल्गोरिदम का उपयोग करके एक और जोड़ी उत्पन्न करते हैं (जैसे कि RSA या Ed25519), अंदर के नंबर पूरी तरह से अलग होंगे। जो गणित दोनों को जोड़ता है वह एक-तरफा है: आप आसानी से निजी की से सार्वजनिक की प्राप्त कर सकते हैं, लेकिन प्रक्रिया को उलट कर सार्वजनिक की से निजी की प्राप्त करना लगभग असंभव है। यही कारण है कि हर SSH की जोड़ी अद्वितीय और सुरक्षित होती है।
SSH यह कैसे साबित करता है कि आप कौन हैं
जब आप SSH के साथ सर्वर में लॉग इन करते हैं, आपकी निजी की आपके कंप्यूटर को कभी नहीं छोड़ती। इसके बजाय, सर्वर एक यादृच्छिक चुनौती भेजता है — जैसे एक बार का पहेली — जिसे केवल आपकी निजी की हल कर सकती है। आपका कंप्यूटर उस चुनौती को गणितीय रूप से साइन करता है, एक छोटा उत्तर उत्पन्न करता है जिसे सर्वर आपकी सार्वजनिक की का उपयोग करके जांच सकता है। अगर उत्तर फिट बैठता है, तो सर्वर जानता है कि आपके पास सही निजी की है — बिना उसे कभी देखे। यह आधुनिक क्रिप्टोग्राफी का जादू है: आप अपनी पहचान साबित कर सकते हैं बिना अपने रहस्य को प्रकट किए। SSH प्रमाणन इसलिए काम करता है क्योंकि आपकी निजी की में सार्वजनिक की प्राप्त करने के लिए सारी जानकारी होती है, लेकिन विपरीत करना लगभग असंभव है।
डेवलपर्स SSH का अभ्यास में कैसे उपयोग करते हैं
हर बार जब डेवलपर्स कोड डिप्लॉय करते हैं, डेटाबेस अपडेट करते हैं, या किसी सेवा को पुनः आरंभ करते हैं, वे अक्सर SSH के माध्यम से अपने दूरस्थ सर्वरों से कनेक्ट होते हैं। प्रमाणन के बाद, उन्हें सर्वर के लिए एक सुरक्षित कमांड-लाइन कनेक्शन प्राप्त होता है। वहां से, वे फाइलें प्रबंधित कर सकते हैं, सेवाएं पुनः आरंभ कर सकते हैं, या लॉग निरीक्षण कर सकते हैं — सब कुछ एक छोर से दूसरे छोर तक एन्क्रिप्टेड होता है। Splync के मामले में, SSH वह तरीका है जिससे हम अपने क्लाउड सर्वर को सुरक्षित रूप से प्रबंधित करते हैं। हर प्रशासनिक कार्रवाई — अपडेट्स डिप्लॉय करने, लॉग्स जांचने, डेटा बैकअप करने — क्रिप्टोग्राफिक कीज़ द्वारा संरक्षित SSH कनेक्शनों के माध्यम से की जाती है। बिना सही निजी की के कोई भी सर्वर तक पहुंच नहीं सकता। भले ही कोई हमारे IP पते को जानता हो, उसके बिना वह चाबी, दरवाजा खुल ही नहीं सकता।
अगला: सर्वर के अंदर एन्क्रिप्शन
SSH सर्वर के प्रवेश द्वार की सुरक्षा करता है, और HTTPS डेटा के ट्रांजिट की। लेकिन एक बार जब डेटा डेटाबेस के अंदर आ जाता है, तो हम इसे सुरक्षित रखने के लिए क्या करते हैं? यहीं हैशिंग और एन्क्रिप्शन आते हैं — रक्षा की अंतिम परत।