Ssh और Avahi का उपयोग करने में परेशानी


10

हल: सुनिश्चित करें कि libnss-mdns स्थापित है!

मुझे अपने नेटबुक से अपने डेस्कटॉप पर .local होस्टनाम का उपयोग करके SSH'ing का उपयोग करने में परेशानी हो रही है। हर बार, मुझे अपने द्वारा उपयोग किए गए राउटर को रीसेट करना पड़ता है, जो मेरे डिवाइसों को दिए गए पतों को रीसेट करता है, इसलिए कुछ समय पहले मैंने अवही को इसके चारों ओर स्थापित करने के लिए सेट किया है। /Etc/avahi/services/ssh.service फ़ाइल मानक है जिसे दस्तावेज़ से कॉपी किया गया है:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- See avahi.service(5) for more information about this configuration file -->
<service-group>
    <name replace-wildcards="yes">%h</name>
       <service>
            <type>_ssh._tcp</type>
            <port>22</port>
       </service>
 </service-group>

यह ठीक काम करता था, लेकिन अब किसी कारण से जब मैं अपने नेटबुक से अपने डेस्कटॉप पर ssh करने की कोशिश करता हूं, तो मुझे निम्न त्रुटि संदेश मिलता है (ध्यान दें कि मैंने इस आउटपुट में अपने पीसी के होस्टनाम को बदल दिया है):

user@netbook>> ssh pc.local -vvv
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/username/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
ssh: Could not resolve hostname pc.local: Name or service not known

मैं अपने नेटबुक से अपने पीसी पर ssh कर सकता हूं जब मैं मैन्युअल रूप से आईपी पते में डालता हूं, और जब मैंने सही तरीके से सेट / आदि / होस्ट किया है (इसलिए मेरे पीसी पर डेमन ठीक काम कर रहा है), यह केवल तभी काम करना बंद कर देता है जब मैं कोशिश करता हूं .local पते का उपयोग करें। SSH'ing दूसरी दिशा में (PC-> नेटबुक) .local hostname का उपयोग करते समय भी ठीक काम करता है। अवही भी ठीक काम करती दिखाई देती हैं:

user@netbook>> avahi-browse -a -t+  
+  wlan0 IPv6 netbook                                  SSH Remote Terminal       local
+  wlan0 IPv6 netbook [<MAC address>]       Workstation                       local
+  wlan0 IPv6 netbook                                  Remote Disk Management local
+  wlan0 IPv4 netbook                                  SSH Remote Terminal       local
+  wlan0 IPv4 netbook [<MAC address>]       Workstation                       local
+  wlan0 IPv4 netbook                                  Remote Disk Management local
+  wlan0 IPv4 pc                                          SSH Remote Terminal       local
+  wlan0 IPv4 pc [<MAC address>]               Workstation                       local
+  wlan0 IPv4 pc                                          Remote Disk Management local
+  wlan0 IPv6 pc                                          SSH Remote Terminal       local
+  wlan0 IPv6 pc [<MAC address>]               Workstation                      local
+  wlan0 IPv6 pc                                          Remote Disk Management local

नेटबुक 13.10 पर चल रहा है; ध्यान दें कि मैंने हाल ही में लुबंटू में परिवर्तन किया था, और मुझे केवल लबंटू के साथ यह त्रुटि देखकर याद आया, न कि सादे उबंटू के साथ। मेरा डेस्कटॉप Ubuntu 13.10 पर चल रहा है।

किसी भी सहायता की सराहना की जाएगी!

* मुझे पता है कि मेरे राउटर को स्थायी रूप से दोनों डिवाइसों के लिए निर्धारित पते दिए जा सकते हैं, और मैं यह करूंगा कि अगर मैं इस मुद्दे को हल नहीं कर सकता, लेकिन मैं इसके बजाय काम करने की कोशिश करना और इसे ठीक करना पसंद करूंगा।

ETA: पीसी को नेटबुक से .local होस्टनाम के साथ पिंग करना (अज्ञात होस्ट) काम नहीं करता है।

संपादित 2: की सामग्री /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 mdns4_minimal dns [NOTFOUND=return] mdns4
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

मैंने कुछ समय के लिए डीएचसीपी और न ही अवही का उपयोग नहीं किया है, लेकिन क्या आप बस नहीं कर सकते ssh user@hostname:/folder?
एलेक्स

क्या पिंग टेस्ट पास हुआ ping pc.local?
user.dz

1
@ एलेक्स: आदर्श रूप से मैं वही करना चाहता हूं, लेकिन जैसा कि मैंने पोस्ट में बताया है कि मुझे हर बार राउटर को रीसेट करना पड़ता है, जो इसे दिए गए पतों को रीसेट करता है, जिसका मतलब है कि मैं बदल रहा हूं / आदि / होस्ट नियमित रूप से फाइलें, यही वजह है कि मैं अवही को स्थापित करता हूं।
thatSeniorGuy

1
@ स्नेशर: बस इसे आज़माया है, और यह नहीं है: "पिंग: अज्ञात होस्ट pc.local।"
thatSeniorGuy

रनिंग strace ssh user@fooयह भी दिखाएगा कि एसएचएस अवही-डेमॉन से संपर्क करने के अनुरोध के साथ foo, जो कि समय से बाहर है ... मेरे मामले में बदल गया /etc/nsswitch.conf: " hosts: files mdns4_minimal [NOTFOUND=return] dns" से " hosts: files dns mdns4_minimal" में। यह निश्चित नहीं है कि अवही डेमन को डीएनएस सर्वरों के बारे में क्यों नहीं पूछा जाना चाहिए, यह दोनों लैन पर मल्टीकास्ट डीएनएस और डीएनएस के बीच असंगति के साथ कुछ करना पड़ सकता है (यह भी देखें: .LLD TLD ... .localवैसे भी बुरा व्यवहार है)
डेविड अल्फॉयर।

जवाबों:


11

खैर, *.localहल नहीं हैं।

इतने पर क्लाइंट मशीन (नोटबुक)

  1. इंस्टॉल avahi-dnsconfd

    sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
    

    avahi-dnsconfdप्रकाशन को सुनता है और उन्हें पास करता है resolvconf

  2. स्थापित करें libnss-mdns (यह लाइब्रेरी गायब थी, इसे स्थापित करने से इस मामले में समस्या ठीक हो गई)

    sudo apt-get install libnss-mdns
    

    nss-mdns GNU सी लाइब्रेरी (glibc) की GNU नाम सेवा स्विच (NSS) कार्यक्षमता के लिए एक प्लगइन है जो मल्टीकास्ट DNS (Zeroconf, aka Apple Bonjour / Apple Bendezvous का उपयोग करके) को प्रभावी रूप से आम यूनिक्स द्वारा नाम समाधान की अनुमति देता है। / तदर्थ mDNS डोमेन में लिनक्स प्रोग्राम .local

  3. चेक /etc/nsswitch.conf

    hosts:     files wins mdns4_minimal dns [NOTFOUND=return] mdns4
    

    यह होना चाहिए mdns4_minimalया mdns4पहले [NOTFOUND=return]और इससे पहले कि dnsएक DNS सर्वर कॉन्फ़िगर किया गया संकल्प अगर आपके पास *.local

    winsयदि आप Windows शेयर होस्टनाम को हल करने के लिए winbind / samba का उपयोग नहीं कर रहे हैं तो निकालें ।

  4. रीबूट


डिबगिंग संकेत:

  • ग्राहक मशीन (नोटबुक)

    1. avahi-dnsconfdसेवा की स्थिति जांचें

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. भागो avahi-discover, आपका डेस्कटॉप IPv4 → स्थानीय → वर्कस्टेशन में सूचीबद्ध होना चाहिए

      स्क्रीनशॉट में उदाहरण mx5मेरा पीसी है जहां salah-Aspire-5738एक अन्य मशीन है।

      यहाँ छवि विवरण दर्ज करें

    3. देखें कि क्या अवधी मेजबान नामों को हल कर सकती है या नहीं

      avahi-resolve -4 --name yourdesktop.local
      
    4. पिंग परीक्षण

      $ ping salah-Aspire-5738.local
      PING salah-Aspire-5738.local (192.168.1.3) 56(84) bytes of data.
      64 bytes from salah-Aspire-5738.local (192.168.1.3): icmp_seq=1 ttl=64 time=2.69 ms
      
  • सर्वर मशीन (डेस्कटॉप) , avahi-discoverक्लाइंट मशीन में सर्वर प्रविष्टि की सूची नहीं थी।

    1. जो avahi-daemonस्थापित है उसकी पुष्टि करें

      sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
      

      avahi-daemon प्रकाशन प्रदान करें।

    2. इसकी सेवा स्थिति की जाँच करें

      $ service avahi-daemon status
      avahi-daemon start/running, process 1517
      
    3. डिफ़ॉल्ट रूप से avahiप्रकाशित _workstation._tcpसेवा द्वारा । avahi-discoverस्थानीय रूप से चेक का उपयोग करें, यदि सूचीबद्ध नहीं है तो इसे सक्षम करने का प्रयास करें /etc/avahi/avahi-daemon.conf(निकालें #)

      publish-workstation=yes
      

      फिर डेमॉन को फिर से शुरू करें:

      sudo service avahi-daemon restart
      

      फिर से जांचें।


दुर्भाग्य से नहीं। avahi-discoverऔर avahi-dnsconfdमेरे नेटबुक या पीसी पर स्थापित नहीं थे, इसलिए मैंने उन्हें दोनों पर स्थापित किया। मैंने /etc/nsswitchआपके द्वारा प्रदान किए गए नमूने की तरह दिखने के लिए भी संपादन किया (पहले केवल प्रविष्टियां फाइलें और डीएनएस थीं) लेकिन दोनों pingऔर avahiअभी भी एक ही त्रुटि देते हैं। कोई और सलाह?
thatSeniorGuy

अर्घ, यह बेहद हैरान करने वाला है।
thatSeniorGuy

हटाने winsसे कोई फायदा नहीं हुआ। avahi-dnsconf है नेटबुक पर चल रहा है (हालांकि मैं का इस्तेमाल किया था sudo service avahi-dnsconfdयह सूची, अन्यथा serviceअज्ञात काम के साथ जवाब होगा)। avahi-discover(जब मेरी नेटबुक पर रन होता है) वर्कस्टेशन हेडिंग और ssh हेडिंग के तहत डेस्कटॉप (और सही तरीके से ) को सूचीबद्ध करता है । फिर भी मैं .local होस्टनाम का उपयोग करते हुए पीसी में पिंग या ssh नहीं कर सकता। मैं वैसे भी डेस्कटॉप पर डेमॉन जाँच की, और avahi-daemon है चल रहा है। कोई विचार? (btw, आपकी सभी सलाह के लिए धन्यवाद, मैं इसकी सराहना करता हूं)
thatSeniorGuy

@thatSeniorGuy avahi-resolve -4 --name yourdesktop.local,?
user.dz

1
स्थापित नहीं किया गया था। इसे स्थापित किया, और यह काम किया !!!!!!!!! आपकी मदद के लिए बहुत बहुत धन्यवाद! हो सकता है कि इसे अपने पोस्ट में शामिल करें ताकि अन्य लोग इसे थोड़ा आसान देख सकें?
thatSeniorGuy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.