হোস্ট একটি হোস্টনাম সমাধান করতে সক্ষম, ssh নয়


14

আমি এসএসএইচ এর মাধ্যমে একটি 10.04 সিস্টেম থেকে 12.04 সিস্টেমে সংযোগ দেওয়ার চেষ্টা করছি। আশ্চর্যজনকভাবে যথেষ্ট নিয়মগুলি resolv.confকেবল নির্বাচিতভাবে কার্যকর হবে বলে মনে হচ্ছে, যা আমাকে বিস্মিত করে। পালন:

[2] user@mach:~$ ssh pangolin
ssh: Could not resolve hostname pangolin: Name or service not known
[2] user@mach:~$ host pangolin
pangolin.subdomain.domain.tld has address 172.16.7.12

subdomain.domain.tldsearchলাইনে রয়েছে /etc/resolv.confএবং hostনামটি সঠিকভাবে অনুসন্ধান করা হয়েছে সেই নিয়মগুলির ভিত্তিতে । তবে, এসএসএইচ ক্লায়েন্টের সাথে sshআমি উপরে পুনরুত্পাদন করা ত্রুটিটি পেয়েছি। এটা কিভাবে হতে পারে? আমি সর্বদা এই ধারণাটি বোধ করি যে নাম-রেজোলিউশনটি resolv.confসিস্টেম-গ্লোবাল প্রয়োগ করে rules

দ্রষ্টব্য: /etc/hostsনামটি মোটেও ঘোষণা করে না pangolin। প্যাকেজটি openssh-serverলক্ষ্য মেশিনে কনফিগার করা হয়েছে। এই নামকরণ রেজোলিউশন কেন এই দুটি প্রোগ্রামের মধ্যে সামঞ্জস্যপূর্ণ নয় সে সম্পর্কে প্রশ্নটি সম্পূর্ণরূপে।

অন্য দ্রষ্টব্য: আমি সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নাম লিখলে কমান্ডটি ঠিকঠাক কাজ করে pangolin.subdomain.domain.tld

ইতিমধ্যে আমি ক্লায়েন্ট মেশিনটি পুনরায় বুট করেছি (10.04) এবং সমস্যাটি এখনও রয়েছে। একটি ডিএনএস ক্যাচিং ডেমন ইনস্টল করা হয়নি, তাই আমি মনে করি যে কোনওভাবেই সমস্যা হওয়া উচিত নয়।


মন্তব্যে জিজ্ঞাসিত তথ্য:

$ grep host /etc/nsswitch.conf
hosts:          files dns

/etc/resolv.conf, আমি ধারাবাহিকভাবে ডোমেন নামগুলি রূপান্তরিত করেছি:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.1.1
nameserver 172.16.1.5
search subdomain.domain1.com domain1.com domain2 domain3.com domain2.ccTLD domain3.net dev.domain1.com sdk.dev.domain1.com

... এবং পূর্ণ /etc/nsswitch.conf:

$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

... এবং /etc/network/interfaces, যা resolv.conf12.04 এর জন্য উত্স :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 172.16.1.234
        netmask 255.255.0.0
        gateway 172.16.255.254
        dns-nameservers 172.16.1.1 172.16.1.5
        dns-search domain1.com. domain2. domain3.com. domain2.ccTLD. domain3.net. dev.domain1.com. sdk.dev.domain1.com. subdomain.domain1.com.
        dns-domain subdomain.domain1.com.

দ্রষ্টব্য: ডোমেন নামের রূপান্তরটি এর সাথে সম্পন্ন হয়েছিল sed, তাই এটি বিভিন্ন পুনরুত্পাদন করা ফাইলগুলির মধ্যে সামঞ্জস্য।


নেই ~/.ssh/config, তবে এখানে বিশ্বব্যাপী এক ( /etc/ssh/ssh_config), ব্রিভিটির পক্ষে সঙ্কুচিত:

$ grep -v '^#' /etc/ssh/ssh_config |grep -v '^[[:space:]]*$'
Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

$ mtr pangolin
Name or service not known: Success

1
আপনি কি আপনার /etc/resolv.confএবং এই আদেশের আউটপুট পোস্ট করতে পারেন grep host /etc/nsswitch.conf?
আউই

@ অভি: এটি যুক্ত হয়েছে, আরও কিছুটা।
0xC0000022L

দুটি প্রশ্ন 1) আপনি যদি fqdn ব্যবহার করেন তবে এটি কি উদ্দেশ্য হিসাবে কাজ করে? ২) কোনও অদ্ভুততা আছে কিনা তা দেখতে আপনি ~ / .ssh / config এবং / etc / ssh / ssh_config এর বিষয়বস্তু পোস্ট করতে পারেন।
প্যাট্রিক রেগান

@ পেট্রিকরেগান: আমি অনুরোধ করা স্টাফটিকে প্রশ্নের মধ্যে সম্পাদনা করব। হ্যাঁ, এটি fqdn :) এর সাথে কাজ করে :) ... (এটিও প্রশ্নটি সামঞ্জস্য করবে)
0xC0000022L

@ STATUS_ACCESS_DENIED: আপনি কি অদ্ভুত কিছু দেখতে পাচ্ছেন mtr pangolin?
pl1nk

উত্তর:


12

যেখানে sshএবং যেমন অন্যান্য প্রোগ্রামের pingব্যবহার জন্য glibc সমাধানকারী (এই ক্ষেত্রে 'প্যান্গোলিন') হোস্টনেম সন্ধান করার, hostসরাসরি DNS- এ পর্যন্ত নাম দেখায়, জন্য glibc সমাধানকারী বাইপাস করে। এটাই পার্থক্য।

যাইহোক, আপনার মেশিনে গ্লিবসি রিসলভারটি চেষ্টা dnsকরার জন্য কনফিগার করা হয়েছে files, কেন যেখানে hostসমাধানটি সফল হয় সেখানে কেন সমাধান করতে ব্যর্থ হয় তা আমি ব্যাখ্যা করতে পারি না ।

আমি এই আচরণটি আগে দেখেছি যখন dnsmasq স্থানীয় ফরোয়ার্ডিং নেমসার্ভার হিসাবে ব্যবহৃত হয়েছিল (https://bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/998712) তবে আপনি এমন স্থানীয় নেমসারভার ব্যবহার করছেন না; তবে সম্ভবত ওখানকার সমস্যাটি ডিএনএসমাস্কে ছিল না তবে গ্লিবিসি রিসলভারে।


গভীর এবং সংক্ষিপ্ত উত্তর। যাওয়ার পথে! ধন্যবাদ।
0xC0000022L

9

আপনার ssh আইপি 6 সমাধান করার চেষ্টা করতে পারে এবং এটি করে সময় শেষ করে। আপনি IP6 ব্যবহার করছেন না তাহলে IP6 অক্ষম করার চেষ্টা করুন /etc/ssh/ssh_configথেকে AddressFamily পরিবর্তন করে anyথেকে inet


এটি আমার জন্য কাজ করেছে, ধন্যবাদ! আমি এর আগে লক্ষ্য করিনি কারণ আমি অন্যান্য সমস্ত সার্ভারগুলি ইতিমধ্যে সমর্থিত আইপিভি 6 -তে সংযোগ দেওয়ার চেষ্টা করেছি।
mniess

3

আমি এটি বেশ কয়েকবার এসেছি এবং রেজোলভকনফের অনুসন্ধান তালিকায় ছয়টি ডোমেন বিধিনিষেধের কথা স্মরণ না করা পর্যন্ত এটি আমাকে সর্বদা ছুঁড়ে ফেলে।


1. এটি একটি খুব ভাল পয়েন্ট। প্রশ্ন পাঠ্যে রেজোলভকনফ ফাইলের একটি তালিকা অন্তর্ভুক্ত রয়েছে (যদিও এটি তথ্য বেনামে সম্পাদনা করা হয়েছে বলে মনে হয়)। ফাইলটির searchলাইনে ছয়টিরও বেশি ডোমেন নাম রয়েছে। গ্লিবিক রেজোলভার কেবল প্রথম ছয়টি ডোমেন বা 256 টি অক্ষর দেখায়, যেটি কম হয়। আমি অনুমান করি যে hostইউটিলিটির কোনও সীমাবদ্ধতা নেই, এবং hostএটি সপ্তম বা পরবর্তী ডোমেন নাম ধারণের সাথে নামটি সমাধান করতে সফল হয়।
jdthood

এও লক্ষ্য করুন যে / etc / নেটওয়ার্ক / ইন্টারফেসে একক স্তরের এক dns-searchলাইন এবং রেখা উভয়ই হওয়া উচিত নয় dns-domaindns-domainবিকল্প আসলে অবচিত; সমস্ত অনুসন্ধান ডোমেনের নামগুলি dns-searchলাইনে থাকা উচিত ।
jdthood

3

দুর্ঘটনাক্রমে 2 নেমসারভার লাইনের আগে একটি ডোমেন এন্ট্রি লাইন রেখে আমি এই ত্রুটিটি পেয়েছি। nslookup কাজ করেছে। উইজেট কাজ করেছে। ssh, scp, rsync ব্যর্থ হয়েছে।

নীচে নেমসার্ভারে ডোমেন স্থানান্তরিত করা এবং রেজোলভকনফ সংরক্ষণ করা স্থির। আমার জন্য আর কিছুই দরকার ছিল না।


3

আমি জানি যে এটি একটি প্রাচীন প্রশ্ন, তবে আমি আমার জন্য যা কাজ করেছি তা যুক্ত করব।

আমি একই সমস্যা ছিল এবং দেখা গেছে যে আমার মধ্যে nsswitch.conf, ছিল mdnsছাড়াও filesএবং dns। সরানো mdns4আমার জন্য এই সমস্যাটি সমাধান করেছে।


আমার জন্যও কাজ করেছেন - উবুন্টু 16.04
বুডি পালুম্বো

-1

আমার এসএফটিপি সার্ভারটি অ্যাক্সেস করতে আমি সমস্যায় পড়ছিলাম। Ftp ব্যবহারকারী অন্য সার্ভার থেকে sftp এ লগইন করতে সক্ষম হন নি। (সোলারিস - ওপেনশ) আমি nsswitch.conf এ "dns" এন্ট্রি মন্তব্য করেছি এবং সমস্যাটি সমাধান হয়েছে।

ধন্যবাদ অরুণ জনার্দনন (আইবিএস সফটওয়্যার সার্ভিসেস)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.