Вирішено: переконайтесь, що libnss-mdns встановлено!
У мене виникають проблеми із використанням SSH'ing з мого нетбука на робочому столі за допомогою .local імені хоста. Часто мені доводиться скидати використовуваний роутер, який скидає адреси, які він видає на мої пристрої, тому деякий час тому я налаштував Avahi, щоб обійти це *. Файл /etc/avahi/services/ssh.service є стандартним, скопійованим з документації:
<?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>
Це працювало чудово, але тепер чомусь, коли я намагаюся перенести з мого нетбука на робочий стіл, я отримую таке повідомлення про помилку (зауважте, що я змінив ім'я хоста ПК у цьому виході):
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
Я можу сш з мого нетбука на свій ПК, коли я вручаю IP-адресу вручну, і коли я правильно налаштував / etc / hosts (тому демон на моєму ПК працює нормально), він припиняє роботу лише тоді, коли я намагаюся використовувати .local адресу. SSH'ing в іншому напрямку (ПК-> нетбук) працює чудово, навіть якщо використовується .local ім'я хоста. Avahi також, здається, працює добре:
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
У нетбуку працює Lubuntu 13.10; зауважте, що я нещодавно змінив Lubuntu, і я лише пам'ятаю, як бачив цю помилку з Lubuntu, а не з звичайним Ubuntu. На моєму робочому столі працює Ubuntu 13.10.
Будь-яка допомога буде вдячна!
* Я знаю, що можу настроїти моєму маршрутизатору назавжди надати задані адреси обом пристроям, і я зроблю це, якщо я не можу вирішити цю проблему, але я вважаю за краще спробувати виправити це, а не працювати над цим.
ETA: Pinging ПК з нетбука з .local ім'ям хоста не працює (невідомий хост).
Правка 2: Зміст /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
також покаже, що ssh контакти avahi-daemon із запитом вирішити foo
, який закінчується ... У моєму випадку змінено на /etc/nsswitch.conf
: From " hosts: files mdns4_minimal [NOTFOUND=return] dns
" to " hosts: files dns mdns4_minimal
". Не впевнений, чому демон avahi НЕ запитує DNS-серверів, можливо, це доведеться зробити з несумісністю між багатоадресною DNS і DNS як у локальній мережі (див. Також: .local TLD ... у .local
будь-якому випадку це погана практика)
ssh user@hostname:/folder
?