Проблема с помощью ssh и Avahi

Решенный: удостоверьтесь, что libnss-mdns установлен!

Я испытываю затруднения с помощью SSH'ing от моего нетбука до моего рабочего стола с помощью .local имени хоста. Время от времени я должен сбросить маршрутизатор, который я использую, который сбрасывает адреса, которые он выделяет к моим устройствам, поэтому только что я создал Avahi для обхождения this*./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>

Это раньше хорошо работало, но теперь по некоторым причинам, когда я пробую к ssh от моего нетбука до моего рабочего стола, я добираюсь, следующее сообщение об ошибке (обратите внимание, что я изменил имя хоста своего ПК в этом выводе):

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

Я могу ssh со своего нетбука на мой ПК, когда я вставил 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: Проверка с помощью ping-запросов ПК от нетбука с .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
10
задан 13 May 2014 в 15:57

1 ответ

Ну, *.local не разрешены.

Таким образом на Клиентской машине (Ноутбук)

  1. Установка avahi-dnsconfd

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

    avahi-dnsconfd слушает публикацию и передает их resolvconf.

  2. Установка libnss-mdns (Эта библиотека отсутствовала, Устанавливание ее решило проблему в этом случае),

    sudo apt-get install libnss-mdns
    

    nss-mdns является плагином для функциональности Службы имен переключателя (NSS) GNU GNU C Библиотека (glibc) обеспечение разрешения имени хоста через Многоадресную передачу DNS (использующий Zeroconf, иначе Apple Добрый день / Рандеву Apple), эффективно позволяя определение имен общими программами Unix/Linux в специальном mDNS домене .local

  3. Проверить /etc/nsswitch.conf

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

    Это должно иметь mdns4_minimal или mdns4 прежде [NOTFOUND=return] и прежде dns если у Вас есть сервер DNS, который настроил твердость *.local.

    Удалить wins если Вы не используете winbind/samba, чтобы разрешить, что Windows совместно использует имена хостов.

  4. Перезагрузка


Отлаживание подсказок:

  • Клиентская машина (Ноутбук)

    1. Проверить avahi-dnsconfd сервисное состояние

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. Выполненный avahi-discover, Ваш рабочий стол должен быть перечислен в IPv4→local→Workstation

      Пример в снимке экрана mx5 мой ПК где salah-Aspire-5738 другая машина.

      enter image description here

    3. Посмотрите, может ли Avahi разрешить имена хостов

      avahi-resolve -4 --name yourdesktop.local
      
    4. Тест 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
      
  • Машина сервера (Рабочий стол), В случае, если avahi-discover в Клиенте машина не перечисляла запись Сервера.

    1. Подтвердите это avahi-daemon установлен

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

      avahi-daemon обеспечьте сервисную публикацию.

    2. Проверьте его сервисное состояние

      $ service avahi-daemon status
      avahi-daemon start/running, process 1517
      
    3. По умолчанию avahi опубликовать _workstation._tcp сервис. проверьте использование avahi-discover локально, если не перечисленная попытка, разрешающая его в /etc/avahi/avahi-daemon.conf (удалите #)

      publish-workstation=yes
      

      Затем демон перезапуска:

      sudo service avahi-daemon restart
      

      Проверьте снова.

11
ответ дан 16 November 2019 в 15:41

Другие вопросы по тегам:

Похожие вопросы: