SSH कॉन्फ़िग में होस्ट और होस्टनाम के बीच अंतर क्या है?


23

मैन पेज यह कहता है:

मेज़बान

होस्ट निम्नलिखित घोषणाओं (अगले होस्ट कीवर्ड तक) को उन होस्ट के लिए ही सीमित करता है जो कीवर्ड के बाद दिए गए पैटर्न में से एक से मेल खाते हैं। यदि एक से अधिक पैटर्न प्रदान किए जाते हैं, तो उन्हें व्हाट्सएप द्वारा अलग किया जाना चाहिए। एक पैटर्न के रूप में एक एकल * * सभी मेजबानों के लिए वैश्विक चूक प्रदान करने के लिए इस्तेमाल किया जा सकता है। होस्ट कमांड लाइन पर दिया जाने वाला होस्टनाम तर्क है (अर्थात नाम मिलान से पहले कैनॉनाइज्ड होस्ट नाम में परिवर्तित नहीं होता है)।

पैटर्न प्रविष्टि को विस्मयादिबोधक चिह्न (`! ') के साथ जोड़कर उपेक्षित किया जा सकता है। यदि एक नकारात्मक प्रविष्टि का मिलान किया जाता है, तो होस्ट प्रविष्टि को अनदेखा कर दिया जाता है, भले ही लाइन मैच पर कोई अन्य पैटर्न हो। इसलिए वाइल्डकार्ड मैचों के अपवाद प्रदान करने के लिए नकारात्मक मैच उपयोगी होते हैं।>

पैटर्न के बारे में अधिक जानकारी के लिए पैटर्न देखें।

होस्टनाम

HostName लॉग इन करने के लिए असली होस्ट नाम निर्दिष्ट करता है। यह मेजबान के लिए उपनाम या संक्षिप्त नाम निर्दिष्ट करने के लिए इस्तेमाल किया जा सकता है। यदि होस्टनाम में वर्ण अनुक्रम `% h 'है, तो इसे कमांड लाइन पर निर्दिष्ट होस्ट नाम से बदला जाएगा (यह अयोग्य नामों में हेरफेर करने के लिए उपयोगी है)। डिफ़ॉल्ट कॉम-मंड लाइन पर दिया गया नाम है। संख्यात्मक IP पते की अनुमति भी है (कमांड लाइन और HostName विनिर्देशों में दोनों)।

उदाहरण के लिए, जब मैं GitHub के लिए SSH कॉन्फ़िग बनाना चाहता हूँ, तो क्रमशः Host और HostName क्या होना चाहिए?


3
संक्षेप में: Hostवह स्ट्रिंग है जो उपयोगकर्ता एसएसएच को लागू करते समय सीएलआई पर इनपुट के रूप में देता है ; सर्वर से कनेक्ट करने का प्रयास करते समय HostNameSSH क्लाइंट नेटवर्क पर आउटपुट करेगा यह स्ट्रिंग है ।
सम्पाब्लोकपर

जवाबों:


15

Github.com के लिए आपका ऐसा ~/.ssh/configदिख सकता है

Host github.com
    IdentityFile ~/.ssh/key_name_for_github

होस्टनाम के लिए: जैसा कि मनुष्य कहता है कि यह आपको होस्ट के लिए संक्षिप्त नाम निर्दिष्ट करने की अनुमति देता है। उदाहरण के लिए, यदि आपका ~/.ssh/configलुक ऐसा है

Host host1
    HostName host1.example.com
Host host2
    HostName anotherdomain.com

फिर जब आप टाइप करें

  • ssh host1आप वास्तव में host1.example.com पर लॉगइन करें
  • ssh host2अन्य domain.com पर लॉग इन करें

मैं अनुमान लगा रहा हूं कि आपके दूसरे ~/.ssh/configउदाहरण में 'होस्ट' के बजाय 'होस्टनाम' था ?
डेव

6

सरल उपयोग में:

Host वास्तविक होस्टनाम है और कोई नहीं है HostName

या

Hostहोस्ट का उपनाम HostNameहै और वास्तविक होस्टनाम है।

सरल उदाहरण:

$ cat ~/.ssh/config
Host dev
    Hostname <hostname>
    User <username>
    IdentityFile <path_to_private_key>

$ ssh dev
# Equivalent to "ssh -i <path_to_private_key> <username>@<hostname>"

नोट: मैन पेज तकनीकी रूप से सही है, यह सिर्फ थोड़ा अजीब है। मैं स्पष्टता के लिए कुछ और शब्द जोड़ूंगा:HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.


1

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

होस्ट कमांड लाइन तर्क को निर्दिष्ट करता है, और इसे "वास्तविक होस्ट नाम / आईपी, बी) शॉर्टहैंड, सी) उपनाम के रूप में सोचा जा सकता है। HostName उस मशीन का वास्तविक होस्टनाम / IP है जिसे आप कनेक्ट कर रहे हैं। HostName फ़ील्ड में, आप कमांड लाइन पर निर्दिष्ट होस्ट नाम स्ट्रिंग के रूप में% h का उपयोग कर सकते हैं। (यह वह हिस्सा था जिसे मैं अपने उदाहरण में उपयोग करना चाहता था।)

तो, मान लें कि आपके पास होस्ट्स का एक सेट है जहाँ होस्टनाम my-proj-host -... के साथ शुरू होता है और वे सभी डोमेन .my.proj.domain.com में हैं, और मुझे विशिष्ट ssh कुंजी का उपयोग करके उनमें लॉग इन करना होगा। my-proj-id-rsa और विशिष्ट उपयोगकर्ता आईडी my-proj-user। अपने जीवन को आसान बनाने के लिए, मैं निम्नलिखित को ~ / .ssh / config फ़ाइल में जोड़ दूंगा

मेजबान मेरे समर्थक- host *

HostName% h.my.proj.domain.com

उपयोगकर्ता my-proj-user

IdentityFile ~ / .shsh / my-proj-id-rsa

अब, मैं टाइप कर सकता हूं

ssh my-proj-host-1234

विन्यास के बिना, वह होता

ssh -i ~ / .ssh / my-proj-id-rsa my-proj-user@my-proj-host-1234.my.proj.domain.com

टाइपिंग (और टाइपो) की थोड़ी बचत।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.