এসএসএইচ কেন এই হোস্টনামটি সমাধান করছে না?


12

যখন আমি নেটওয়ার্কের কোনও হোস্টের কাছে এসএসএইচ চেষ্টা করি তখন আমি storageএকটি ডিএনএস রেজোলিউশন ব্যর্থতা পাই:

$ ssh storage
ssh: Could not resolve hostname storage: Name or service not known

তবে যখন আমি হোস্টের সাথে ডিএনএসকে জিজ্ঞাসা করি তখন এটি কার্যকর হয়

$ host storage
storage has address 192.168.20.103

এটি কীভাবে hostআইপি সন্ধান sshকরতে পারে তবে পারে না?


14
যেকোন জায়গায় এফকিউডিএন ব্যবহার করার অভ্যাসে প্রবেশ শুরু করুন। এই লাইন বরাবর আপনার যদি এই প্রথম সমস্যা হয় তবে আপনি অসাধারণ ভাগ্যবান। এগুলি ট্র্যাক করার জন্য সত্যই লোমশ হতে পারে এবং এটি আপনার শেষ হবে না। এখানে একটি ইঙ্গিত দেওয়া হয়েছে: storageইন্টারনেটের একটি সরাসরি শীর্ষ স্তরের ডোমেন।
মাইকেল হ্যাম্পটন

আপনি 192.168.20.103 এ 'ssh' করতে সক্ষম?
ইভানগোনক্রজি

2
আপনি 192.168.20.103 এর হোস্ট নামটি কোথায় সংজ্ঞায়িত করেছেন? জন্য / etc / হোস্ট?
এতিম

3
এফকিউডিএন টাইপ করা একটি ব্যথা। অন্যদিকে "এসএসএস / কনফিগারেশন।
pjc50

1
@ pjc50 আমি টাইপ করুন stoএবং তারপরে ট্যাবটি চাপুন।
মাইকেল হ্যাম্পটন

উত্তর:


28

sshএবং hostসম্পূর্ণ ভিন্ন পথ অনুসরণ করে নামগুলি সমাধান করুন, তাই অবাক হওয়ার কিছু নেই যে তারা কখনও কখনও বিভিন্ন ফলাফল পান, বিশেষত যখন নামটি সমাধান করার নামটি কোনও এফকিউএন না হয় (তাই সর্বত্র এফকিউডিএন ব্যবহারের পরামর্শ))

আপনি নিজের ওএস এবং আপনার সিস্টেমের কনফিগারেশন সম্পর্কে কিছু উল্লেখ করেন না, তাই লিনাক্সের দিকে নজর রেখে আমাকে এটিকে সাধারণ রাখতে হবে: ম্যাকওএসের বিবরণ কিছুটা আলাদা এবং উইন্ডোজ আরও বেশি, তবে সাধারণ ধারণাটি একই।

  • hostডিএনএসকে জিজ্ঞাসা করে, তাই মূলত এটি /etc/resolv.confসেখানে তালিকাভুক্ত সার্ভারগুলিতে অনুসন্ধান করে এবং অনুসন্ধান করে, সম্ভবত হোস্ট-নেম ইতিমধ্যে পুরোপুরি যোগ্য না হলে একটি ডোমেন নাম সংযুক্ত করে। এটি প্রতিটি অন্যান্য সম্ভাব্য উত্সকে উপেক্ষা করে, তবে সাবধান থাকুন যে আজকাল অনেকগুলি সিস্টেম একটি স্থানীয় ক্যাচিং ডিএনএস সার্ভার চালায় (সাধারণত dnsmasq) যা /etc/hostsঅন্যান্য ডিএনএস সার্ভারগুলি জিজ্ঞাসা করার আগে পড়ে এবং অন্যান্য উত্সগুলি পড়ে , তাই যদি hostস্থানীয় সার্ভারের অনুসন্ধান করা হয় তবে ফলাফলগুলি /etc/hostsক্রাইপ করতে পারে।

  • sshতার নিজস্ব পথ অনুসরণ করে। আমি opensshলিনাক্সের অধীনে কী করে তা বর্ণনা করব , অন্যান্য প্রয়োগগুলি পৃথক। প্রথমে এটি কনফিগার ফাইলগুলিতে (সিস্টেম-ওয়াইড এবং প্রতি ব্যবহারকারী ) সংজ্ঞায়িত হোস্ট ডাকনামগুলির সন্ধান করে , তারপরে এটি ডিরেক্টরিতে নির্দেশ অনুসারে নির্দিষ্ট ক্রমে অন্যান্য উত্সগুলি অনুসন্ধান করে । বলুন এটি এমন কিছু:/etc/ssh/ssh_config~/.ssh/confighosts:/etc/nsswitch.conf

    hosts: files dns
    

    এর অর্থ: সন্ধান করুন /etc/hostsএবং তারপরে ডিএনএসকে জিজ্ঞাসা করুন ( /etc/resolv.confআবার)। অন্যান্য সম্ভাব্য উত্স হ'ল অপ্রচলিত nisএবং netinfoপরিষেবাগুলি, এলডিএপি, সক্রিয় ডিরেক্টরি, আপনি তাদের নাম দিন।

আপনার বিশেষ কেসটি ডিবাগ করার জন্য আপনার অনুসরণের অনুসরণটি অনুসরণ করা উচিত sshএবং এটি কোথায় আটকে যায় তা খুঁজে পাওয়া উচিত।


6
ltrace / strace আপনাকে কীভাবে ssh ডোমেনটি সমাধান করার চেষ্টা করছে তা ইঙ্গিত দিতে পারে ... এবং সবচেয়ে কাছের-কীভাবে-ও-ওএস-এটি করে, কমান্ড লাইন ডিএনএস সরঞ্জাম সম্ভবত জেনেট।
রেক্যান্ডবোনম্যান

আপনার /etc/nsswitch.confপড়ার পরিবর্তনের প্রস্তাবটি hosts: files dnsআমার জন্য কাজ করেছে। একটি আকর্ষণীয় পার্শ্ব নোট হিসাবে, আমি গত কয়েক সপ্তাহে রাস্পিয়ান জেসির সাথে বেশ কয়েকটি রাস্পবেরি পিস সেট আপ করেছি এবং তারা সকলেই এই পরিবর্তনটি প্রয়োজন।
প্যাট্রিক টুকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.