Problemas usando ssh e Avahi

10

Resolvido: certifique-se de que o libnss-mdns esteja instalado!

Estou tendo problemas para usar o SSH do meu netbook para a minha área de trabalho usando um nome de host .local. De vez em quando, eu tenho que redefinir o roteador que eu uso, o que redefine os endereços que ele fornece aos meus dispositivos, então há algum tempo eu configurei o Avahi para contornar isso *. O arquivo /etc/avahi/services/ssh.service é o padrão copiado da documentação:

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

Isso costumava funcionar bem, mas agora, por algum motivo, quando tento ssh do meu netbook na minha área de trabalho, recebo a seguinte mensagem de erro (note que alterei o nome do host do meu PC nessa saída):

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

Eu posso ssh do meu netbook para o meu PC quando eu coloco o endereço IP manualmente, e quando eu configurei o / etc / hosts corretamente (assim o daemon no meu PC está funcionando bem), ele só para de funcionar quando Eu tento usar o endereço local. SSH'ing na outra direção (PC- > netbook) funciona bem, mesmo quando se usa um nome de host .local. Avahi também parece estar funcionando bem:

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

O netbook está executando o Lubuntu 13.10; note que eu mudei para Lubuntu recentemente, e eu só lembro de ter visto este erro com Lubuntu e não com o Ubuntu simples. Minha área de trabalho está executando o Ubuntu 13.10.

Qualquer ajuda seria apreciada!

* Estou ciente de que posso configurar meu roteador para fornecer permanentemente endereços definidos para ambos os dispositivos, e farei isso se não puder resolver esse problema, mas prefiro tentar corrigi-lo em vez de contornar isso.

ETA: Pingar o PC do netbook com o nome de host .local não funciona (host desconhecido).

Editar 2: conteúdo de /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
    
por thatSeniorGuy 04.05.2014 / 06:10

1 resposta

9

Bem, *.local não foram resolvidos.

Então, em máquina cliente (notebook)

  1. Instale avahi-dnsconfd

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

    avahi-dnsconfd ouve a publicação e passa para resolvconf .

  2. Instale libnss-mdns (Esta biblioteca estava ausente, a instalação corrigiu o problema neste caso)

    sudo apt-get install libnss-mdns
    
    % bl0ck_qu0te%
  3. Verifique /etc/nsswitch.conf

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

    Ele deve ter mdns4_minimal ou mdns4 antes de [NOTFOUND=return] e antes de dns se você tiver um servidor DNS configurado que resolva *.local .

    Remova wins se você não estiver usando o winbind / samba para resolver Windows compartilha nomes de host.

  4. Reinicializar

Dicas de depuração:

  • Máquina cliente (notebook)

    1. Verifique o avahi-dnsconfd status do serviço

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. Executar avahi-discover , sua área de trabalho deve estar listada em IPv4 → local → Estação de trabalho

      Exemplo na captura de tela mx5 é o meu PC, onde salah-Aspire-5738 é uma outra máquina.

    3. Veja se o Avahi pode resolver nomes de host

      avahi-resolve -4 --name yourdesktop.local
      
    4. Teste de ping

      $ 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
      
  • Máquina do servidor (área de trabalho) , no caso de avahi-discover na máquina cliente não listar a entrada do servidor.

    1. Confirme se avahi-daemon está instalado

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

      avahi-daemon fornece publicação de serviços.

    2. Verifique seu status de serviço

      $ service avahi-daemon status
      avahi-daemon start/running, process 1517
      
    3. Por padrão, avahi publish _workstation._tcp service. verifique usando avahi-discover localmente, se não estiver listado, tente ativá-lo em /etc/avahi/avahi-daemon.conf (remove # )

      publish-workstation=yes
      

      Em seguida, reinicie o daemon:

      sudo service avahi-daemon restart
      

      Verifique novamente.

por user.dz 04.05.2014 / 10:29