Rozwiązane: upewnij się, że libnss-mdns jest zainstalowany!
Mam problem z używaniem SSH'ing z mojego netbooka na pulpit za pomocą .lokalnej nazwy hosta. Co jakiś czas muszę zresetować router, którego używam, co resetuje adresy, które podaje moim urządzeniom, więc jakiś czas temu skonfigurowałem Avahi, aby obejść ten problem *. Plik /etc/avahi/services/ssh.service to standardowy plik skopiowany z dokumentacji:
<?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>
Kiedyś działało dobrze, ale teraz z jakiegoś powodu, gdy próbuję ssh z mojego netbooka na pulpit, pojawia się następujący komunikat o błędzie (uwaga: w tym wyjściu zmieniłem nazwę hosta mojego komputera):
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
Mogę ssh z mojego netbooka na komputer, kiedy ręcznie wpisuję adres IP, a kiedy poprawnie skonfiguruję / etc / hosts (więc demon na moim komputerze działa dobrze), przestaje działać tylko, gdy próbuję użyj adresu lokalnego. SSH'ing w innym kierunku (PC-> netbook) działa dobrze, nawet jeśli używasz .lokalnej nazwy hosta. Avahi również działa dobrze:
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
Netbook działa pod kontrolą Lubuntu 13.10; zauważ, że ostatnio zmieniłem na Lubuntu i pamiętam ten błąd tylko w Lubuntu, a nie w zwykłym Ubuntu. Na moim pulpicie działa Ubuntu 13.10.
Każda pomoc będzie mile widziana!
* Wiem, że mogę skonfigurować mój router, aby na stałe podawał ustawione adresy obu urządzeniom, i zrobię to, jeśli nie będę w stanie rozwiązać tego problemu, ale wolę spróbować to naprawić niż obejść.
ETA: Pingowanie komputera PC z netbooka przy użyciu .local nazwa hosta nie działa (nieznany host).
Edycja 2: Zawartość /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
źródło
ssh user@hostname:/folder
?ping pc.local
?strace ssh user@foo
pokaże także, że ssh kontaktuje się z avahi-demonem z prośbą o rozwiązaniefoo
, która upłynęła ... W moim przypadku zmieniono na/etc/nsswitch.conf
: Z „hosts: files mdns4_minimal [NOTFOUND=return] dns
” na „hosts: files dns mdns4_minimal
”. Nie jestem pewien, dlaczego demon avahi ma NIE pytać serwerów DNS, może być konieczne rozwiązanie problemu niezgodności między DNS multiemisji a DNS w sieci LAN (patrz też: lokalna TLD ... i tak.local
jest złą praktyką)Odpowiedzi:
Cóż,
*.local
nie są rozwiązane.Tak więc na komputerze klienta (notebook)
zainstalować
avahi-dnsconfd
avahi-dnsconfd
słucha publikacji i przekazuje je doresolvconf
.Zainstaluj
libnss-mdns
(brak tej biblioteki, jej zainstalowanie naprawiło problem w tym przypadku)Czek
/etc/nsswitch.conf
Powinien mieć
mdns4_minimal
lubmdns4
przed[NOTFOUND=return]
i przed,dns
jeśli masz serwer DNS, który skonfigurował rozwiązanie*.local
.Usuń,
wins
jeśli nie używasz winbind / samba do rozpoznawania nazw hostów Windows.Restart
Wskazówki dotyczące debugowania:
Komputer kliencki (notebook)
Sprawdź
avahi-dnsconfd
status usługiUruchom
avahi-discover
, Twój pulpit powinien znajdować się na liście w IPv4 → lokalny → Stacja roboczaPrzykładem na zrzucie ekranu
mx5
jest mój komputer, na którymsalah-Aspire-5738
znajduje się inna maszyna.Sprawdź, czy Avahi może rozpoznać nazwy hostów
Test ping
Komputer serwera (komputer stacjonarny) ,
avahi-discover
w przypadku, gdy w komputerze klienta nie ma wpisu serwera.Potwierdź, że
avahi-daemon
jest zainstalowanyavahi-daemon
świadczyć usługi wydawnicze.Sprawdź status usługi
Domyślnie usługa
avahi
publikowania_workstation._tcp
. zaznacz, używającavahi-discover
lokalnie, jeśli nie ma na liście, spróbuj włączyć ją w/etc/avahi/avahi-daemon.conf
(usuń#
)Następnie uruchom ponownie demona:
Sprawdź ponownie.
źródło
avahi-discover
iavahi-dnsconfd
nie zostały zainstalowane na moim netbooku lub komputerze, więc zainstalowałem je na obu urządzeniach. Edytowałem również,/etc/nsswitch
aby wyglądać jak podany przez Ciebie przykład (wcześniej jedynymi wpisami były pliki i dns), ale obaping
iavahi
nadal dają ten sam błąd. Jeszcze jakieś porady?wins
nie pomogło.avahi-dnsconf
jest uruchomiony na netbooka (choć musiałem użyćsudo service avahi-dnsconfd
, aby ją wymienić, inaczejservice
zareaguje z nieznanym miejscu pracy).avahi-discover
(podczas uruchomienia na moim netbooku) robi lista pulpit (i słusznie), zarówno pod nagłówkiem Workstation i nagłówkiem ssh. Jednak nadal nie mogę pingować ani ssh na komputerze, używając lokalnych nazw hostów. Sprawdziłem demona na pulpicie tak, iavahi-daemon
jest uruchomiony. Jakieś pomysły? (przy okazji, dziękuję za wszystkie porady, doceniam to)avahi-resolve -4 --name yourdesktop.local
?