Próbuję połączyć się z systemem 10.04 z systemem 12.04 za pośrednictwem SSH. O dziwo, zasady resolv.conf
wydają się działać tylko selektywnie, co mnie dziwi. Przestrzegać:
[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
jest w search
linii /etc/resolv.conf
i używanie host
nazwy jest właściwie wyszukiwane, biorąc pod uwagę te reguły. Jednak w przypadku klienta SSH ssh
otrzymuję błąd odtworzony powyżej. Jak to może być? Zawsze miałem wrażenie, że zasady rozpoznawania nazw obowiązują w resolv.conf
całym systemie.
Uwaga: w /etc/hosts
ogóle nie podaje nazwy pangolin
. Pakiet openssh-server
jest skonfigurowany na komputerze docelowym. Pytanie dotyczy wyłącznie tego, dlaczego rozpoznawanie nazw nie jest spójne między tymi dwoma programami.
Inna uwaga: polecenie działa poprawnie, gdy wprowadzę pełną nazwę domeny, tj pangolin.subdomain.domain.tld
.
W międzyczasie ponownie uruchomiłem komputer kliencki (10.04) i problem nadal występuje. Demon buforowania DNS nie jest zainstalowany, więc uważam, że i tak nie powinno to stanowić problemu.
Informacje wymagane w komentarzu:
$ grep host /etc/nsswitch.conf
hosts: files dns
/etc/resolv.conf
, Konsekwentnie przekształcałem nazwy domen:
# 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
... i pełne /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
... i /etc/network/interfaces
który jest źródłem 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.
Uwaga: transformacja nazw domen została wykonana sed
, więc jest spójna między różnymi odtwarzanymi plikami.
Nie ma ~/.ssh/config
, ale oto globalny ( /etc/ssh/ssh_config
), skurczony ze względu na zwięzłość:
$ 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
i wyjście tego poleceniagrep host /etc/nsswitch.conf
?