SSH विस्तारित होस्टनाम पर वाइल्डकार्ड कॉन्फ़िगर करता है


25

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

Host *.mydomain.com
    User myusername
Host host1
    Hostname host1.mydomain.com

उन सेटिंग्स के साथ, अगर मैं टाइप ssh host1.mydomain.comकरता हूं तो इसका मूल्यांकन होता है myusername@host1.mydomain.com, लेकिन अगर मैं टाइप ssh host1करता हूं तो यह मेरी उपयोगकर्ता सेटिंग को लागू नहीं करता है और मैं इसके बजाय देखता हूं mylocalusername@host1.mydomain.com

क्या वाइल्डकार्ड्स का फाइनल एक्सपेंडेड होस्टनाम पर मैच करने का कोई तरीका है ताकि मैं शॉर्ट या लॉन्ग फॉर्म टाइप कर सकूं और वही रिजल्ट पा सकूं?


यदि आप ऑर्डर को स्विच करते हैं, तो वाइल्डकार्ड सेक्शन को दूसरा स्थान दें।
22:27

या तुमने कोशिश की? मुझे पूरा यकीन है कि बस आपको डोमेन गलत के साथ सही उपयोगकर्ता नाम मिलता है, अगर कुछ भी हो।
मु माइंड

मैंने इसे आज़माया नहीं, इसीलिए मैंने इसे एक टिप्पणी के रूप में टिप्पणी करने के लिए कुछ उत्तर देने की कोशिश की, एक नकारात्मक जवाब के बजाय।
esmit

जवाबों:


13

बस उपयोग करें:

Host *.mydomain.com host1
User myusername

Host host1
Hostname host1.mydomain.com
  • होस्ट लाइन में वैकल्पिक पैटर्न को एक परिसीमन रिक्त द्वारा आपूर्ति की जाती है ।
  • सभी मिलान होस्ट पैटर्न लागू होते हैं।
  • यदि कोई विकल्प कई बार होता है, तो केवल 1 का उपयोग किया जाता है

3
यह कम से कम टाइपिंग बचाता है। लगता है कि आप किसी भी तरह से डोमेन जानकारी की नकल से बचने के बारे में नहीं जानते हैं?
मु। माइंड

यह बहुत अच्छा होगा अगर SSH केवल डिफ़ॉल्ट डोमेन को जोड़ने की कोशिश कर सकता है, अर्थात "lan" या "mycompany.com", इसके बजाय इसे कॉन्फ़िगरेशन फ़ाइल में हार्ड कोड करने के लिए।
१२:१३ बजे सईसपुप २ Sa ’

18

आप बस अपने उपनाम के कैनोनिकल होस्टनाम के साथ ssh_config को पुनः सेट CanonicalizeHostnameकरने के yesलिए सेट कर सकते हैं । उदाहरण के लिए:

CanonicalizeHostname yes
Host *.mydomain.com
    User myusername

Host host1
    HostName host1.mydomain.com

वैकल्पिक रूप से, यदि आप होस्टनाम को रीमैप करना चाहते हैं, तो आप केवल कैनोनिकल होस्टनाम से मिलान करने के Matchबजाय उपयोग कर सकते हैं Host। उदाहरण के लिए:

Match canonical host="*.mydomain.com"
    User myusername

Host host2.mydomain.com
    HostName host2.otherdomain.com

जब आप कनेक्ट करते हैं तो उपयोगकर्ता का निर्देश सेट नहीं किया जाएगा host2.mydomain.com


ध्यान दें कि वहाँ अभी भी ssh के पुराने संस्करण हैं जो इन विकल्पों का समर्थन नहीं करते हैं - यदि आप उनमें से किसी एक में चलते हैं, जैसा कि मैंने किया था, तो होस्ट समाधान अभी भी काम करेगा।
किर्स्टेलाइन

2

CanonicalDomains का उपयोग करना भी काम करेगा।

CanonicalizeHostname yes
CanonicalDomains mydomain.com

Host *
User myusername

यदि आप किसी विशेष होस्ट के लिए संक्षिप्त नाम रखना चाहते हैं, उदाहरण के लिए:

Host h
Hostname host1

हालांकि, मैं एक नाम की सिफारिश नहीं करूंगा।


1

आप अपने .ssh / config में% h.mydomain.com का उपयोग कर सकते हैं।


 Host host?
 User myusername
 Hostname %h.mydomain.com

Host host?? User myusername Hostname %h.mydomain.com

Host host??? User myusername Hostname %h.mydomain.com

अब आप कर सकते हैं:

ssh host1
के बजाय
ssh host1.mydomain.com
ssh होस्ट 10
के बजाय
ssh host10.mydomain.com
और ssh host100

सादर, बर्ट

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