सुरक्षित शैल (एसएसएच)
SSH वह प्रोटोकॉल है जो इंटरनेट के अनदेखे आधे हिस्से को चलाता है: प्रत्येक सिस्टम प्रशासक का रिमोट कंसोल, प्रत्येक डेवलपर का तैनाती चरण, प्रत्येक Git एक निजी रिपॉजिटरी पर पुश करता है। 1990 के दशक के अंत में इसने टेलनेट का स्थान ले लिया और तब से यह डिफ़ॉल्ट सिक्योर-शेल प्रोटोकॉल रहा है। यह जानने से कि यह वास्तव में क्या करता है, बहुत सारे परिचालन कार्य समझ में आते हैं।
संपूर्ण लेख का मुख्य भाग नीचे अंग्रेजी में दिया गया है।
SSH (सिक्योर शेल) एक असुरक्षित नेटवर्क पर सुरक्षित रूप से नेटवर्क सेवाओं के संचालन के लिए एक क्रिप्टोग्राफ़िक नेटवर्क प्रोटोकॉल है। आमतौर पर रिमोट कमांड-लाइन लॉगिन (नाम में "शेल") और फ़ाइलों को स्थानांतरित करने के लिए उपयोग किया जाता है, लेकिन अंतर्निहित प्रोटोकॉल किसी भी टीसीपी एप्लिकेशन को टनल करने के लिए पर्याप्त सामान्य है। एसएसएच की स्थापना टाटू येलोनेन ने 1995 में अपने विश्वविद्यालय में पासवर्ड-सूँघने वाले हमले के बाद की थी; ओपनएसएसएच कार्यान्वयन (1999 से शुरू) आज सबसे अधिक तैनात संस्करण है।
SSH क्या प्रदान करता है नेटवर्क पर्यवेक्षक एन्क्रिप्टेड बाइट्स देखते हैं, कमांड या पासवर्ड नहीं। कुंजी)। 22 (कॉन्फ़िगर करने योग्य).
~/.ssh/authorized_keys में मेल खाने वाली सार्वजनिक कुंजी है। क्लाइंट सर्वर से एक चुनौती पर हस्ताक्षर करके निजी कुंजी पर कब्ज़ा साबित करता है। कोई भी पासवर्ड नेटवर्क का पता नहीं लगाता. लगभग सभी उपयोग मामलों के लिए अनुशंसित डिफ़ॉल्ट। शेल एक्सेस से परे: पोर्ट फ़ॉरवर्डिंग -L 9000:internal:3306 user@bastion स्थानीय पोर्ट 9000 खोलता है, जो बैस्टियन होस्ट के माध्यम से internal:3306 तक सुरंग बनाता है। जंप होस्ट के माध्यम से आंतरिक सेवाओं तक पहुंचने के लिए उपयोगी।
-R): विपरीत दिशा। रिमोट होस्ट को एक पोर्ट मिलता है जो आपकी मशीन पर एक सेवा पर वापस सुरंग बनाता है। इस पर इंगित किए गए किसी भी एप्लिकेशन का टीसीपी ट्रैफ़िक एसएसएच सत्र के माध्यम से टनल किया गया है। प्रभावी रूप से SSH.SSH डायनेमिक फ़ॉरवर्डिंग पर एकल-उपयोगकर्ता वीपीएन गरीब व्यक्ति के लिए सबसे उपयोगी वीपीएन है; हर कोई जिसके पास कहीं न कहीं सर्वर है उसकी पहुंच है।
ओपनएसएसएच इकोसिस्टम
- ssh - क्लाइंट
- sshd - सर्वर डेमन
- scp - सुरक्षित कॉपी (विरासत, अब ज्यादातर के तहत sftp द्वारा प्रतिस्थापित किया गया है) हुड)
- sftp - सुरक्षित FTP, एक अलग प्रोटोकॉल जो SSH
- ssh-agent के अंदर चलता है - मेमोरी में डिक्रिप्टेड कुंजियों को कैश करता है ताकि आप प्रति कनेक्शन पासफ़्रेज़ दर्ज न करें
- ssh-keygen - कुंजी जोड़े उत्पन्न करता है बचाव:
- पासवर्ड प्रमाणीकरण अक्षम करें। केवल सार्वजनिक कुंजी। संपूर्ण क्रेडेंशियल-स्टफिंग अटैक वेक्टर को हटा देता है।
- Ed25519 कुंजियों का उपयोग करें।
ssh-keygen -t ed25519नई कुंजियों के लिए सही कमांड है। - एक गैर-डिफ़ॉल्ट पोर्ट का उपयोग करें। मार्जिनल; अधिकतर स्कैनर लॉग शोर को कम करता है। sshd_config.
- VPN या Tailscale का उपयोग करें - यदि आप इससे बच सकते हैं तो SSH को सार्वजनिक इंटरनेट पर बिल्कुल भी उजागर न करें।
- ऑडिट ज्ञात_होस्ट और अधिकृत_कुंजियाँ। अप्रत्याशित प्रविष्टियों की जाँच करें।
अक्सर पूछे जाने वाले प्रश्नों
- SSH किस पोर्ट का उपयोग करता है?
- डिफ़ॉल्ट रूप से 22. पोर्ट कॉन्फ़िगर करने योग्य है; कुछ ऑपरेटर लॉग में स्कैन ट्रैफ़िक को कम करने के लिए SSH को एक गैर-मानक पोर्ट पर ले जाते हैं। यह अस्पष्टता के माध्यम से सुरक्षा है - स्वच्छता के लिए उपयोगी है, वास्तविक सुरक्षा के लिए नहीं। असली सुरक्षा मजबूत प्रमाणीकरण है.
- क्या SSH HTTPS से अधिक सुरक्षित है?
- विभिन्न खतरे के मॉडल। दोनों आधुनिक क्रिप्टोग्राफी का उपयोग करते हैं और प्रोटोकॉल स्तर पर अनिवार्य रूप से समान रूप से सुरक्षित हैं। एसएसएच का उपयोग आम तौर पर सार्वजनिक-कुंजी प्रमाणीकरण (कोई पासवर्ड नहीं, बहुत मजबूत) के साथ किया जाता है जबकि कई HTTPS साइटें अभी भी पासवर्ड प्रमाणीकरण (डिफ़ॉल्ट रूप से कमजोर) का उपयोग करती हैं। प्रोटोकॉल सहकर्मी हैं; परिनियोजन प्रथाएँ भिन्न-भिन्न होती हैं।
- क्या मैं फ़ाइल स्थानांतरण के लिए SSH का उपयोग कर सकता हूँ?
- हाँ। <code>scp</code> और <code>sftp</code> दोनों SSH पर चलते हैं। एसएफटीपी अधिक सक्षम आधुनिक विकल्प है - पुन: प्रारंभ करने योग्य स्थानांतरण, पुनरावर्ती संचालन, परमाणु लेखन। <code>rsync</code> SSH को अपने परिवहन के रूप में भी उपयोग कर सकता है, और किसी भी गैर-तुच्छ स्थानांतरण के लिए सही उपकरण है।
- SSH कुंजी क्या है?
- प्रमाणीकरण के लिए उपयोग की जाने वाली सार्वजनिक/निजी कुंजी जोड़ी। निजी कुंजी आपकी मशीन पर <code>~/.ssh/id_*</code> में रहती है; सार्वजनिक कुंजी आपके द्वारा कनेक्ट किए गए सर्वर पर <code>~/.ssh/authorized_keys</code> में स्थापित हो जाती है। पासफ़्रेज़ के बिना निजी कुंजी का खो जाना एक गंभीर समस्या है - इसके साथ कोई भी व्यक्ति आपकी तरह लॉग इन कर सकता है। SSH कुंजियों को हमेशा पासफ़्रेज़ से सुरक्षित रखें।
- SSH क्यों कहता है 'होस्ट कुंजी बदल गई'?
- आपके अंतिम कनेक्शन के बाद से सर्वर की पहचान कुंजी बदल गई है - या तो सर्वर को फिर से बनाया गया था, कुंजी घुमाई गई थी, या कुछ गलत है (सबसे चिंताजनक मामला: कोई व्यक्ति सर्वर का प्रतिरूपण कर रहा है)। नई कुंजी को आंख मूंदकर स्वीकार न करें; सर्वर ऑपरेटर के साथ आउट-ऑफ़-बैंड सत्यापित करें। यदि यह वैध रोटेशन था, तो Known_hosts से पुरानी कुंजी हटा दें और नई कुंजी स्वीकार करें।