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
fonte
ssh user@hostname:/folder
?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 resolverfoo
, 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)Respostas:
Bem,
*.local
não estão resolvidos.Então na máquina do cliente (Notebook)
Instalar
avahi-dnsconfd
avahi-dnsconfd
ouve a publicação e passa pararesolvconf
.Instalar
libnss-mdns
(esta biblioteca estava ausente, a instalação corrigiu o problema neste caso)Verifica
/etc/nsswitch.conf
Deveria ter
mdns4_minimal
oumdns4
antes[NOTFOUND=return]
e antesdns
se você tiver um servidor DNS configurado resolvido*.local
.Remova
wins
se você não estiver usando o winbind / samba para resolver nomes de host de compartilhamento do Windows.Reiniciar
Dicas de depuração:
Máquina cliente (Notebook)
Verifique o
avahi-dnsconfd
status do serviçoExecutar
avahi-discover
, sua área de trabalho deve estar listada em IPv4 → local → Estação de trabalhoExemplo na captura de tela
mx5
é o meu PC, ondesalah-Aspire-5738
está uma outra máquina.Veja se Avahi pode resolver nomes de host
Teste de ping
Máquina servidor (área de trabalho) , no caso
avahi-discover
da máquina cliente não listar a entrada do servidor.Confirme se
avahi-daemon
está instaladoavahi-daemon
fornecer serviços de publicação.Verifique seu status de serviço
Por serviço de
avahi
publicação padrão_workstation._tcp
. verifique usandoavahi-discover
localmente, se não estiver listado, tente ativá-lo/etc/avahi/avahi-daemon.conf
(remover#
)Em seguida, reinicie o daemon:
Verifique novamente.
fonte
avahi-discover
eavahi-dnsconfd
não foram instalados no meu netbook ou PC, instalei-os nos dois. Também editei/etc/nsswitch
para parecer com o exemplo que você forneceu (anteriormente as únicas entradas eram arquivos e dns), mas ambosping
eavahi
ainda dão o mesmo erro. Mais algum conselho?wins
não ajudou.avahi-dnsconf
está sendo executado no netbook (embora eu tivesse que usarsudo service avahi-dnsconfd
para listá-lo, caso contrárioservice
, responderia com trabalho desconhecido).avahi-discover
(quando executado no meu netbook) faz lista de área de trabalho (e corretamente), tanto sob o título Workstation eo título ssh. Ainda não consigo executar ping ou ssh no PC usando nomes de host local. Eu verifiquei o daemon na área de trabalho de qualquer maneira, eavahi-daemon
está em execução. Alguma ideia? (btw, obrigado por todos os seus conselhos, agradeço)avahi-resolve -4 --name yourdesktop.local
,?