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 주소를 사용하십시오. 다른 방향 (PC-> netbook)에서의 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로 변경했으며 일반 Ubuntu가 아닌 Lubuntu에서만이 오류가 발생하는 것을 기억합니다. 내 데스크탑은 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없습니까?
Alex

핑 테스트를 통과 했습니까 ping pc.local?
user.dz

1
@ Alex : 이상적으로는 내가하고 싶은 일이지만, 게시물에서 지적했듯이 라우터를 재설정해야합니다. 이는 주소를 재설정합니다. 즉, / etc / hosts가 변경됩니다. 파일을 정기적으로 작성하기 때문에 Avahi를 설정합니다.
thatSeniorGuy

1
@Sneetsher : 방금 시도했지만 "ping : 알 수없는 호스트 pc.local"이 아닙니다.
thatSeniorGuy

실행 strace ssh user@foo도 해결에 요청하여 해당 SSH 연락처를 Avahi - 데몬 표시됩니다 foo배에서 ... 내 경우에 변경 /etc/nsswitch.conf: "보낸 사람 hosts: files mdns4_minimal [NOTFOUND=return] dns"을 " hosts: files dns mdns4_minimal". avahi 데몬이 DNS 서버를 요구하지 않는 이유를 잘 모르는 경우 LAN에서 멀티 캐스트 DNS와 DNS 간의 비 호환성으로 무언가를 수행해야 할 수도 있습니다 (또한 .local TLD ... .local어쨌든 나쁜 연습이 있습니다)
David Tonhofer

답변:


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는 멀티 캐스트 DNS (Zeroconf, 일명 Apple Bonjour / Apple Rendezvous 사용)를 통해 호스트 이름 확인을 제공하는 GNU C 라이브러리 (glibc)의 GNU Name Service Switch (NSS) 기능 용 플러그인으로, 일반적인 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 → local → 워크 스테이션에 나열되어야합니다.

      스크린 샷의 예 는 다른 컴퓨터가있는 mx5내 PC salah-Aspire-5738입니다.

      여기에 이미지 설명을 입력하십시오

    3. Avahi가 호스트 이름을 확인할 수 있는지 확인

      avahi-resolve -4 --name yourdesktop.local
      
    4. 핑 테스트

      $ 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했다)하지만 모두 같은 모양을 ping하고 avahi여전히 같은 오류를 제공합니다. 더 이상의 조언?
thatSeniorGuy

Arrgh, 이것은 매우 당황합니다.
thatSeniorGuy

제거하는 wins데 도움이되지 않았습니다. avahi-dnsconf 있다 (내가 사용했다하지만 넷북에서 실행 sudo service avahi-dnsconfd을 나열 그렇지 않으면 service알 수없는 작업에 대응할 것이다). avahi-discover(내 넷북에서 실행할 경우) 하지 워크 스테이션 제목과 SSH 제목 아래 모두 목록 바탕 화면 (제대로). 그러나 여전히 .local 호스트 이름을 사용하여 PC에 ping 또는 ssh를 수행 할 수 없습니다. 어쨌든 바탕 화면에서 데몬을 확인하고 avahi-daemon 있다 실행. 어떤 아이디어? (btw, 모든 조언을 주셔서 감사합니다, 감사합니다)
thatSeniorGuy

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

1
설치되지 않았습니다. 그것을 설치하고 작동했습니다 !!!!!!!!! 도와 주셔서 정말 감사합니다! 다른 사람이 조금 더 쉽게 볼 수 있도록 게시물에 추가 하시겠습니까?
thatSeniorGuy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.