Проблемы с использованием 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-dnsconfdsudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utilsavahi-dnsconfdслушает публикации и передает ихresolvconf,устанавливать
libnss-mdns(Эта библиотека отсутствовала, ее установка устранила проблему в этом случае)sudo apt-get install libnss-mdnsnss-mdns - это плагин для функциональности GNU Name Service Switch (NSS) библиотеки GNU C (glibc), обеспечивающий разрешение имен хостов через Multicast DNS (с использованием Zeroconf, он же Apple Bonjour / Apple Rendezvous), эффективно разрешающий разрешение имен с помощью общего Unix / Программы для Linux в специальном домене mDNS.local
Проверьте
/etc/nsswitch.confhosts: 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-utilsavahi-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Проверьте еще раз.