web-dev-qa-db-ja.com

sshとAvahiの使用に関する問題

解決済み: libnss-mdnsがインストールされていることを確認してください!

.localホスト名を使用して、ネットブックからデスクトップへのSSHの使用に問題があります。頻繁に、使用するルーターをリセットする必要があります。これにより、デバイスに提供するアドレスがリセットされるため、しばらく前に、これを回避するために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しようとすると、何らかの理由で次のエラーメッセージが表示されます(この出力ではPCのホスト名を変更しました)。

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アドレスを手動で入力すると、ネットブックからPCにsshできます。/etc/hostsを正しくセットアップすると(PCのデーモンが正常に動作するようになります)、それを試みると動作しなくなります。 .localアドレスを使用します。 .localホスト名を使用する場合でも、他の方向(PC-> netbook)でのSSHは正常に機能します。 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ホスト名を使用してネットブックからPCにpingを実行しても機能しません(不明なホスト)。

編集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
thatSeniorGuy

さて、*.localは解決されません。

クライアントマシン(ノートブック)

  1. インストールavahi-dnsconfd

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

    avahi-dnsconfdは公開をリッスンし、resolvconfに渡します。

  2. Install libnss-mdns(このライブラリが欠落していたため、インストールすると問題が修正されました)

    Sudo apt-get install libnss-mdns
    

    nss-mdnsは、GNUネームサービススイッチ(NSS)機能のプラグインです。GNU Cライブラリ(glibc)は、マルチキャストDNS(Zeroconf、別名Apple Bonjour/Apple Rendezvous)、アドホックmDNSドメイン.localの一般的なUnix/Linuxプログラムによる名前解決を効果的に許可します

  3. /etc/nsswitch.confを確認してください

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

    mdns4_minimalの前にmdns4の前でdnsの前に[NOTFOUND=return]または*.localが必要です。

    Winbind/sambaを使用してWindows共有ホスト名を解決しない場合は、winsを削除します。

  4. リブート


デバッグのヒント:

  • クライアントマシン(ノートブック)

    1. avahi-dnsconfdサービスステータスを確認します

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. avahi-discoverを実行します。デスクトップがIPv4→ローカル→ワークステーションに一覧表示されます。

      スクリーンショットの例mx5は私のPCで、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
      

      再び確かめる。

10
user.dz