एंड्रॉयड

Ssh config फाइल का उपयोग करना

SSH config मूल बातें

SSH config मूल बातें

विषयसूची:

Anonim

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

यह मार्गदर्शिका SSH क्लाइंट कॉन्फ़िगरेशन फ़ाइल की मूल बातें शामिल करती है और कुछ सबसे सामान्य कॉन्फ़िगरेशन विकल्पों की व्याख्या करती है।

आवश्यक शर्तें

हम यह मान रहे हैं कि आप ओपनएसएसएच क्लाइंट के साथ लिनक्स या मैकओएस सिस्टम का उपयोग कर रहे हैं।

SSH कॉन्फ़िग फ़ाइल स्थान

OpenSSH क्लाइंट-साइड कॉन्फ़िगरेशन फ़ाइल को कॉन्फ़िगरेशन नाम दिया गया है, और इसे उपयोगकर्ता के होम निर्देशिका के तहत .ssh निर्देशिका में संग्रहीत किया जाता है।

जब उपयोगकर्ता पहली बार ssh कमांड चलाता है, तो ~/.ssh ssh निर्देशिका स्वचालित रूप से बनाई जाती है। यदि निर्देशिका आपके सिस्टम पर मौजूद नहीं है, तो नीचे दिए गए कमांड का उपयोग करके इसे बनाएं:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

डिफ़ॉल्ट रूप से SSH कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं हो सकती है इसलिए आपको टच कमांड का उपयोग करके इसे बनाने की आवश्यकता हो सकती है:

touch ~/.ssh/config

यह फ़ाइल उपयोगकर्ता द्वारा केवल पढ़ने योग्य और लिखने योग्य होनी चाहिए, और अन्य लोगों द्वारा सुलभ नहीं:

chmod 600 ~/.ssh/config

SSH फ़ाइल संरचना और पैटर्न कॉन्फ़िगर करें

SSH कॉन्फ़िग फ़ाइल निम्न संरचना लेता है:

Host hostname1 SSH_OPTION value SSH_OPTION value Host hostname2 SSH_OPTION value Host * SSH_OPTION value

SSH क्लाइंट कॉन्फिग फाइल की सामग्री को स्टैंजस (वर्गों) में व्यवस्थित किया जाता है। प्रत्येक श्लोक Host निर्देश के साथ शुरू होता है और इसमें विशिष्ट SSH विकल्प होते हैं जिनका उपयोग दूरस्थ SSH सर्वर के साथ संबंध स्थापित करते समय किया जाता है।

इंडेंटेशन की आवश्यकता नहीं है लेकिन इसकी सिफारिश की जाती है क्योंकि यह फ़ाइल को पढ़ने में आसान बनाता है।

Host निर्देश में एक पैटर्न या एक व्हाट्सएप-अलग-अलग पैटर्न की सूची हो सकती है। प्रत्येक पैटर्न में शून्य या अधिक गैर-व्हाट्सएप चरित्र या निम्न पैटर्न विनिर्देशकों में से एक हो सकता है:

  • * - शून्य या अधिक वर्णों से मेल खाता है। उदाहरण के लिए, Host * सभी मेजबान से मेल खाता है, जबकि 192.168.0.* 192.168.0.0/24 सबनेट में मेजबान से मेल खाता है। ? - बिल्कुल एक वर्ण से मेल खाता है। पैटर्न, Host 10.10.0.? 10.10.0. में सभी मेजबान मैच 10.10.0. रेंज। ! - जब एक पैटर्न की शुरुआत में उपयोग किया जाता है, तो यह मैच को नकार देता है। उदाहरण के लिए, Host 10.10.0.* !10.10.0.5 10.10.0.0/24 सबनेट में किसी भी होस्ट से मेल खाता है, सिवाय 10.10.0.5

SSH क्लाइंट स्टैंज़ा द्वारा कॉन्फ़िगरेशन फ़ाइल श्लोक को पढ़ता है, और यदि एक से अधिक पैटर्न मेल खाते हैं, तो पहले मिलान श्लोक के विकल्प पूर्वता लेते हैं। इसलिए फ़ाइल की शुरुआत में अधिक होस्ट-विशिष्ट घोषणाएं दी जानी चाहिए, और फ़ाइल के अंत में अधिक सामान्य ओवरराइड्स।

आप अपने टर्मिनल में man ssh_config टाइप करके या ssh_config मैन पेज पर जाकर उपलब्ध ssh विकल्पों की पूरी सूची पा सकते हैं।

SSH config फाइल को अन्य प्रोग्राम जैसे scp , sftp , और rsync द्वारा भी पढ़ा जाता है।

SSH कॉन्फ़िग फ़ाइल उदाहरण

अब जब हमने SSH कॉन्फ़िगरेशन फ़ाइल के मूल को कवर कर लिया है, तो हम निम्नलिखित उदाहरण को देखते हैं।

आमतौर पर, SSH के माध्यम से एक दूरस्थ सर्वर से कनेक्ट होने पर आप दूरस्थ उपयोगकर्ता नाम, होस्टनाम और पोर्ट निर्दिष्ट करेंगे। उदाहरण के लिए, कमांड लाइन से पोर्ट 2322 पर dev.example.com नामक एक होस्ट के रूप में john रूप में लॉग इन करने के लिए, आप टाइप करेंगे:

ssh [email protected] -p 2322

केवल ssh dev टाइप करके ऊपर दिए गए कमांड में दिए गए विकल्पों के समान सर्वर का उपयोग करने के लिए, निम्नलिखित पंक्तियों को अपनी "~/.ssh/config फाइल में डालें।

~ /.Ssh / config

Host dev HostName dev.example.com User john Port 2322

अब जब आप ssh dev टाइप करते हैं, ssh क्लाइंट विन्यास फाइल को पढ़ेगा और कनेक्शन विवरण का उपयोग करेगा जो dev होस्ट के लिए निर्दिष्ट है:

ssh dev

साझा SSH विन्यास फाइल उदाहरण

यह उदाहरण होस्ट पैटर्न और विकल्प पूर्वता के बारे में अधिक विस्तृत जानकारी देता है।

चलो निम्नलिखित उदाहरण फ़ाइल लेते हैं:

Host targaryen HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key Host tyrell HostName 192.168.10.20 Host martell HostName 192.168.10.50 Host *ell user oberyn Host * !martell LogLevel INFO Host * User root Compression yes

  • जब आप ssh targaryen टाइप ssh targaryen , ssh क्लाइंट फ़ाइल पढ़ता है और पहले मैच से विकल्प लागू करता है, जो कि Host targaryen । फिर यह एक मिलान पैटर्न के लिए एक-एक करके अगले श्लोक की जांच करता है। अगला मिलान Host * !martell (मतलब सभी होस्ट को छोड़कर martell ), और यह इस श्लोक से कनेक्शन विकल्प को लागू करेगा। अंतिम परिभाषा Host * भी मेल खाता है, लेकिन ssh क्लाइंट केवल Compression ऑप्शन लेगा क्योंकि User विकल्प पहले से ही Host targaryen में परिभाषित है।

    जब आप ssh targaryen टाइप करते हैं तो उपयोग किए जाने वाले विकल्पों की पूरी सूची इस प्रकार है:

    HostName 192.168.1.10 User daenerys Port 7654 IdentityFile ~/.ssh/targaryen.key LogLevel INFO Compression yes

    ssh tyrell को चलाने के दौरान मेल खाते होस्ट पैटर्न हैं: Host tyrell , Host *ell , Host * !martell और Host * । इस मामले में उपयोग किए जाने वाले विकल्प हैं:

    HostName 192.168.10.20 User oberyn LogLevel INFO Compression yes

    HostName 192.168.10.50 User oberyn Compression yes

    अन्य सभी कनेक्शनों के लिए, ssh क्लाइंट Host * !martell में निर्दिष्ट विकल्पों का उपयोग करेगा Host * !martell और Host * सेक्शन।

SSH कॉन्फ़िग फ़ाइल विकल्प को ओवरराइड करें

Ssh क्लाइंट निम्न कॉन्फ़िगरेशन क्रम में इसके कॉन्फ़िगरेशन को पढ़ता है:

  1. कमांड लाइन से निर्दिष्ट विकल्प। ~/.ssh/config .shsh ~/.ssh/config परिभाषित.Options /etc/ssh/ssh_config

Host dev HostName dev.example.com User john Port 2322

और आप अन्य सभी विकल्पों का उपयोग करना चाहते हैं लेकिन john बजाय उपयोगकर्ता root से कनेक्ट करने के लिए केवल कमांड लाइन पर उपयोगकर्ता को निर्दिष्ट करें:

ssh -o "User=root" dev

-F ( configfile ) विकल्प आपको एक वैकल्पिक प्रति-उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करने की अनुमति देता है।

ssh क्लाइंट को ssh कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट सभी विकल्पों को अनदेखा करने के लिए, उपयोग करने के लिए कहें:

ssh -F /dev/null [email protected]

निष्कर्ष

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

डिफ़ॉल्ट रूप से, SSH पोर्ट 22 पर सुनता है। डिफ़ॉल्ट SSH पोर्ट को बदलना स्वचालित हमलों के जोखिम को कम करके आपके सर्वर पर सुरक्षा की एक अतिरिक्त परत जोड़ता है।

ssh टर्मिनल