SSH를 통해 10.04 시스템에서 12.04 시스템에 연결하려고합니다. 이상하게도 규칙은 resolv.conf
선택적으로 만 적용되는 것 같습니다. 관찰 :
[2] user@mach:~$ ssh pangolin
ssh: Could not resolve hostname pangolin: Name or service not known
[2] user@mach:~$ host pangolin
pangolin.subdomain.domain.tld has address 172.16.7.12
subdomain.domain.tld
이 search
줄에 /etc/resolv.conf
있고 host
해당 규칙을 사용 하여 이름을 올바르게 검색합니다. 그러나 SSH 클라이언트에서 ssh
위의 오류가 발생합니다. 어떻게 이럴 수있어? 나는 항상 이름 확인 규칙이 resolv.conf
시스템 전역 에 적용 된다는 인상을 받았다 .
참고 : /etc/hosts
이름 pangolin
을 전혀 선언하지 않습니다 . 패키지 openssh-server
는 대상 시스템에서 구성됩니다. 문제는 이름 확인이 두 프로그램간에 왜 일관성이 없는지에 대한 것입니다.
또 다른 참고 사항 : 정규화 된 도메인 이름을 입력하면 명령이 제대로 작동합니다 pangolin.subdomain.domain.tld
.
그 동안 클라이언트 컴퓨터 (10.04)를 재부팅했는데 문제가 계속 발생합니다. DNS 캐싱 데몬이 설치되지 않았으므로 어쨌든 문제가되지 않아야한다고 생각합니다.
의견에서 요청한 정보 :
$ grep host /etc/nsswitch.conf
hosts: files dns
/etc/resolv.conf
도메인 이름을 일관되게 변형했습니다.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.1.1
nameserver 172.16.1.5
search subdomain.domain1.com domain1.com domain2 domain3.com domain2.ccTLD domain3.net dev.domain1.com sdk.dev.domain1.com
... 그리고 전체 /etc/nsswitch.conf
:
$ cat /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 dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
... 및 /etc/network/interfaces
. resolv.conf
12.04 의 소스입니다 .
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.1.234
netmask 255.255.0.0
gateway 172.16.255.254
dns-nameservers 172.16.1.1 172.16.1.5
dns-search domain1.com. domain2. domain3.com. domain2.ccTLD. domain3.net. dev.domain1.com. sdk.dev.domain1.com. subdomain.domain1.com.
dns-domain subdomain.domain1.com.
참고 : 도메인 이름 변환은로 수행 sed
되었으므로 다양한 재생 파일간에 일관됩니다.
이 없습니다 만 ~/.ssh/config
, 여기 /etc/ssh/ssh_config
에 간결성을 위해 축소 된 글로벌 ( )이 있습니다.
$ grep -v '^#' /etc/ssh/ssh_config |grep -v '^[[:space:]]*$'
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
$ mtr pangolin
Name or service not known: Success
mtr pangolin
있습니까?
/etc/resolv.conf
이 명령의 결과 를 게시 할 수grep host /etc/nsswitch.conf
있습니까?