Проблемы с использованием SSH и Avahi
Решено: убедитесь, что libnss-mdns установлен!
У меня проблемы с использованием SSH с моего нетбука на рабочий стол с использованием имени хоста.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>
Раньше это работало нормально, но теперь по какой-то причине, когда я пытаюсь выполнить 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 в другом направлении (ПК-> нетбук) работает нормально, даже при использовании имени хоста.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: Проверка связи компьютера с нетбуком с именем хоста.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
1 ответ
Что ж, *.local
не разрешены.
Так на клиентской машине (ноутбуке)
устанавливать
avahi-dnsconfd
sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
avahi-dnsconfd
слушает публикации и передает ихresolvconf
,устанавливать
libnss-mdns
(Эта библиотека отсутствовала, ее установка устранила проблему в этом случае)sudo apt-get install libnss-mdns
nss-mdns - это плагин для функциональности GNU Name Service Switch (NSS) библиотеки GNU C (glibc), обеспечивающий разрешение имен хостов через Multicast DNS (с использованием Zeroconf, он же Apple Bonjour / Apple Rendezvous), эффективно разрешающий разрешение имен с помощью общего Unix / Программы для Linux в специальном домене mDNS.local
Проверьте
/etc/nsswitch.conf
hosts: files wins mdns4_minimal dns [NOTFOUND=return] mdns4
Должно иметь
mdns4_minimal
или жеmdns4
до[NOTFOUND=return]
и раньшеdns
если у вас есть DNS-сервер, на котором настроено разрешение*.local
,Удалить
wins
если вы не используете winbind / samba для разрешения имен хостов Windows.перезагружать
Отклоняющие намеки:
Клиентский компьютер (ноутбук)
Проверьте
avahi-dnsconfd
статус сервиса$ service avahi-dnsconfd status avahi-dnsconfd start/running, process 1548
Бежать
avahi-discover
, Ваш рабочий стол должен быть указан в IPv4 → local → WorkstationПример на скриншоте
mx5
мой компьютер гдеsalah-Aspire-5738
это другая машина.Посмотрим, сможет ли Avahi разрешить имена хостов
avahi-resolve -4 --name yourdesktop.local
Пинг тест
$ 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
в клиентской машине не указана запись Сервера.Подтвердите это
avahi-daemon
установленоsudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
avahi-daemon
оказывать услуги издательского дела.Проверьте его сервисный статус
$ service avahi-daemon status avahi-daemon start/running, process 1517
По умолчанию
avahi
публиковать_workstation._tcp
оказание услуг. проверить с помощьюavahi-discover
локально, если нет в списке, попробуйте включить его в/etc/avahi/avahi-daemon.conf
(Удалить#
)publish-workstation=yes
Затем перезапустите демон:
sudo service avahi-daemon restart
Проверьте еще раз.