Resolvido: verifique se o libnss-mdns está instalado!
Estou tendo problemas para usar o SSH do meu netbook para minha área de trabalho usando um nome de host .local. De vez em quando, tenho que redefinir o roteador que uso, que redefine os endereços que ele fornece aos meus dispositivos. Há algum tempo, 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 para minha área de trabalho, recebo a seguinte mensagem de erro (note que alterei o nome do host do meu PC nesta 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
Posso ssh do meu netbook para o meu PC quando coloco o endereço IP manualmente e quando configuro o / etc / hosts corretamente (para que o daemon no meu PC esteja funcionando bem), ele só pára de funcionar quando tento use o endereço local. O SSH 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 o Lubuntu recentemente e só lembro de ter visto esse erro no Lubuntu e não no Ubuntu comum. Minha área de trabalho está executando o Ubuntu 13.10.
Qualquer ajuda seria apreciada!
* Estou ciente de que pode configurar meu roteador para fornecer permanentemente endereços definidos para ambos os dispositivos, e farei isso se não conseguir resolver esse problema, mas prefiro tentar consertar isso do que solucionar o problema.
ETA: executar ping no PC do netbook com o nome de host .local não funciona (host desconhecido).
Edição 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
ping pc.local
?
strace ssh user@foo
também mostrará que o ssh entra em contato com o avahi-daemon com a solicitação para resolver foo
, o que excede o tempo limite ... No meu caso, foi alterado /etc/nsswitch.conf
: De " hosts: files mdns4_minimal [NOTFOUND=return] dns
" para " hosts: files dns mdns4_minimal
". Não sei por que o avahi daemon NÃO deve pedir aos servidores DNS, ele pode ter que fazer algo com a incompatibilidade entre o DNS multicast e o DNS na LAN (veja também: .local TLD ... ter .local
boas práticas de qualquer maneira)
ssh user@hostname:/folder
?