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


10

解決済み: 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

DHCPもAvahiもしばらく使用していませんが、簡単にできませんssh user@hostname:/folderか?
アレックス

pingテストに合格しましたping pc.localか?
user.dz

1
@アレックス:理想的にはそれが私がしたいことですが、投稿でたびたび指摘したように、ルーターをリセットする必要があります。これにより、ルーターが提供するアドレスがリセットされます。つまり、/ etc / hostsを変更しますファイルを定期的に保存するため、Avahiをセットアップしました。
thatSeniorGuy 2014年

1
@Sneetsher:試してみましたが、しませんでした:「ping:不明なホストpc.local」。
thatSeniorGuy 2014年

実行 strace ssh user@fooすると、sshが解決要求とともにavahi-daemonに連絡し、fooタイムアウトになることも表示されます。私の場合は、/etc/nsswitch.confhosts: files mdns4_minimal [NOTFOUND=return] dns」から「」に変更されましたhosts: files dns mdns4_minimal。avahiデーモンがDNSサーバーに問い合わせないことになっている理由がわからない、LAN上のマルチキャストDNSとDNSの両方の非互換性に何らかの.local
影響を与える

回答:


11

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

  3. 小切手 /etc/nsswitch.conf

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

    それは持つべきmdns4_minimalか、mdns4[NOTFOUND=return]と前にdnsあなたがDNSサーバ設定されていることを決意を持っている場合*.local

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

  4. リブート


デバッグのヒント:

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

    1. チェックavahi-dnsconfdサービスのステータス

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. を実行しますavahi-discover。デスクトップはIPv4→ローカル→ワークステーションにリストされているはずです

      スクリーンショットの例は、他のマシンmx5である私のPC salah-Aspire-5738です。

      ここに画像の説明を入力してください

    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
      

      もう一度チェック。


残念ながら運がありません。avahi-discoverそして、avahi-dnsconfd私は両方にそれらをインストールして、私のネットブックやPCにインストールされませんでした。私はまた、編集した/etc/nsswitchあなたが提供されているサンプルのように見えるように(以前にエントリのみがファイルやDNSだった)が、両方pingavahiまだ同じエラーを与えます。他にアドバイスはありますか?
thatSeniorGuy 2014年

なるほど、これは非常に困惑しています。
thatSeniorGuy 2014

削除winsは助けにはならなかった。ネットブック上avahi-dnsconf 実行されています(sudo service avahi-dnsconfdそれをリストするために使用する必要がありましたが、それ以外の場合serviceは不明なジョブで応答します)。avahi-discover(私のネットブック上で実行した場合)、ワークステーションの見出しとsshの見出しの下の両方、リストデスクトップ(と正しく)。それでも、.localホスト名を使用してPCにpingまたはsshできません。私はとにかく、デスクトップ上のデーモンをチェックし、avahi-daemon されて実行されています。何か案は?(ところで、あなたのアドバイスをありがとう、私は感謝します)
thatSeniorGuy 2014

@thatSeniorGuy 、avahi-resolve -4 --name yourdesktop.local?
user.dz 2014

1
インストールされていませんでした。インストールして動作しました!!!!!!!!! 手伝ってくれてどうもありがとう!それを投稿に追加して、他の人が少し簡単に見られるようにしますか?
thatSeniorGuy 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.