Probleme mit ssh und Avahi

9

Gelöst: stelle sicher, dass libnss-mdns installiert ist!

Ich habe Probleme mit SSH's von meinem Netbook zu meinem Desktop mit einem .local Hostnamen. Hin und wieder muss ich den Router, den ich benutze, zurücksetzen, der die Adressen, die er an meine Geräte gibt, zurücksetzt, also habe ich vor einiger Zeit Avahi eingerichtet, um das zu umgehen *. Die Datei /etc/avahi/services/ssh.service ist die Standarddatei, die aus der Dokumentation kopiert wurde:

<?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>

Früher funktionierte das gut, aber jetzt, aus irgendeinem Grund, wenn ich versuche, von meinem Netbook auf meinen Desktop zu gelangen, erhalte ich die folgende Fehlermeldung (ich habe den Hostnamen meines PCs in dieser Ausgabe geändert):

[email protected]>> 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

Ich kann von meinem Netbook auf meinen PC surfen, wenn ich die IP-Adresse manuell eingegeben habe, und wenn ich / etc / hosts korrekt eingerichtet habe (damit der Daemon auf meinem PC funktioniert), funktioniert es nur noch nicht Ich versuche die .local Adresse zu verwenden. SSH 'in die andere Richtung (PC- & gt; Netbook) funktioniert gut, auch wenn Sie einen lokalen Hostnamen verwenden. Avahi scheint auch gut zu funktionieren:

[email protected]>> 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

Im Netbook läuft Lubuntu 13.10; Beachte, dass ich vor kurzem zu Lubuntu gewechselt bin, und ich erinnere mich nur, dass ich diesen Fehler mit Lubuntu gesehen habe und nicht mit normalem Ubuntu. Auf meinem Desktop läuft Ubuntu 13.10.

Jede Hilfe wäre willkommen!

* Ich bin mir bewusst, dass ich meinen Router so einrichten kann, dass er für beide Geräte feste Adressen festlegt, und ich werde das tun, wenn ich dieses Problem nicht lösen kann, aber ich würde lieber versuchen, das Problem zu beheben, als es zu umgehen es.

ETA: Das Ping des PCs vom Netbook mit dem lokalen Hostnamen funktioniert nicht (unbekannter Host).

Bearbeiten 2: Inhalt von /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
    
thatSeniorGuy 04.05.2014, 06:10

1 Antwort

8

Nun, *.local werden nicht aufgelöst.

Also auf Client-Rechner (Notebook)

  1. Installieren Sie avahi-dnsconfd

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

    avahi-dnsconfd hört auf die Veröffentlichung und übergibt sie an resolvconf .

  2. Install libnss-mdns (Diese Bibliothek fehlte, die Installation hat das Problem in diesem Fall behoben)

    sudo apt-get install libnss-mdns
    
      

    nss-mdns ist ein Plugin für die Funktionalität des GNU Name Service Switch (NSS)   der GNU C Library (glibc) zur Hostnamenauflösung über Multicast   DNS (mit Zeroconf, alias Apple Bonjour / Apple Rendezvous), effektiv   Erlaubt die Namensauflösung durch gängige Unix / Linux-Programme in den Ad-hoc-mDNS   Domäne .local

  3. Überprüfen Sie /etc/nsswitch.conf

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

    Sie sollte mdns4_minimal oder mdns4 vor [NOTFOUND=return] und vor dns haben, wenn Sie einen DNS-Server haben, der die Konfiguration von *.local konfigurieren.

    Entferne wins , wenn du keine Winbind / Samba zur Auflösung verwendest Windows teilen Hostnamen.

  4. Neustart

Debugging-Hinweise:

  • Client-Rechner (Notebook)

    1. Überprüfen Sie avahi-dnsconfd Service-Status

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. Run avahi-discover , Ihr Desktop sollte in IPv4 → local → Workstation

      aufgeführt sein

      Beispiel im Screenshot mx5 ist mein PC wo salah-Aspire-5738 eine andere Maschine ist.

    3. Siehe, ob Avahi Hostnamen auflösen kann

      avahi-resolve -4 --name yourdesktop.local
      
    4. Ping-Test

      $ 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
      
  • Server-Rechner (Desktop) , falls avahi-discover im Client-Rechner den Server-Eintrag nicht aufgelistet hat.

    1. Bestätigen Sie, dass avahi-daemon installiert ist

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

      avahi-daemon stellt Dienste zur Veröffentlichung bereit.

    2. Überprüfen Sie den Servicestatus

      $ service avahi-daemon status
      avahi-daemon start/running, process 1517
      
    3. Standardmäßig avahi publish _workstation._tcp service. Überprüfen Sie mit avahi-discover lokal, wenn nicht aufgeführt versuchen Sie es in /etc/avahi/avahi-daemon.conf (remove # )

      zu aktivieren
      publish-workstation=yes
      

      Starten Sie den Daemon neu:

      sudo service avahi-daemon restart
      

      Überprüfen Sie erneut.

user.dz 04.05.2014, 10:29

Tags und Links