sshऔर hostपूरी तरह से अलग-अलग रास्तों के बाद नामों को हल करें, इसलिए यह आश्चर्य की बात नहीं है कि वे कभी-कभी अलग-अलग परिणाम देते हैं, खासकर जब नाम हल करने के लिए एक FQDN नहीं है (इसलिए हर जगह FQDNs का उपयोग करने का सुझाव।)
आप अपने ओएस और आपके सिस्टम कॉन्फ़िगरेशन के बारे में कुछ भी उल्लेख नहीं करते हैं, इसलिए मुझे इसे सामान्य रखना होगा, लिनक्स पर नज़र रखना: मैकओएस विवरण कुछ अलग हैं, और विंडोज और भी अधिक, लेकिन सामान्य अवधारणाएं समान हैं।
hostDNS को क्वेरी करता है, इसलिए मूल रूप से यह दिखता है /etc/resolv.confऔर वहां सूचीबद्ध सर्वर से पूछताछ करता है, संभवतः एक डोमेन नाम संलग्न करता है यदि होस्टनाम पहले से पूरी तरह से योग्य नहीं है। यह हर दूसरे संभावित स्रोत को नजरअंदाज करता है, लेकिन सावधान रहें कि इन दिनों कई सिस्टम एक स्थानीय कैशिंग DNS सर्वर (आमतौर पर dnsmasq) चलाते हैं जो /etc/hostsअन्य DNS सर्वरों को क्वेरी करने से पहले पढ़ता है और अन्य स्रोत हैं, इसलिए यदि hostस्थानीय सर्वर से पूछताछ में परिणाम /etc/hostsरेंगना पड़ सकता है।
sshअपने रास्ते पर चलता है। मैं वर्णन करूंगा कि opensshलिनक्स के तहत क्या होता है, अन्य कार्यान्वयन भिन्न होते हैं। पहले यह कॉन्फ़िगरेशन फ़ाइलों (सिस्टम-वाइड और प्रति-उपयोगकर्ता ) में परिभाषित होस्ट उपनामों की तलाश करता है , फिर यह निर्देश द्वारा निर्दिष्ट क्रम में अन्य स्रोतों की खोज करता है । कहो यह कुछ इस तरह है:/etc/ssh/ssh_config~/.ssh/confighosts:/etc/nsswitch.conf
hosts: files dns
इसका मतलब है: /etc/hostsडीएनएस को देखें और फिर ( /etc/resolv.confफिर से) क्वेरी करें । अन्य संभावित स्रोत अप्रचलित nisऔर netinfoसेवाएं हैं, LDAP, सक्रिय निर्देशिका, आप उनका नाम देते हैं।
अपने विशेष मामले को डीबग करने के लिए, आपको अपने कार्यान्वयन के पथ का अनुसरण करना चाहिए sshऔर यह पता लगाना चाहिए कि यह कहां फंस गया है।
storageइंटरनेट पर एक लाइव शीर्ष-स्तरीय डोमेन है।