Estoy tratando de conectarme desde un sistema 10.04 a un sistema 12.04 a través de SSH. Por extraño que parezca, las reglas resolv.conf
parecen tener efecto solo selectivamente, lo que me deja perplejo. Observar:
[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
está en la search
línea /etc/resolv.conf
y el uso host
del nombre se busca correctamente dadas esas reglas. Sin embargo, con el cliente SSH ssh
recibo el error reproducido anteriormente. ¿Cómo puede ser esto? Siempre tuve la impresión de que las reglas de resolución de nombres se aplican en el resolv.conf
sistema global.
Nota: /etc/hosts
no declara el nombre pangolin
en absoluto. El paquete openssh-server
está configurado en la máquina de destino. La pregunta es puramente por qué la resolución de nombres no es consistente entre esos dos programas.
Otra nota: el comando funciona bien cuando ingreso el nombre de dominio completo, es decir pangolin.subdomain.domain.tld
.
Mientras tanto, reinicié la máquina del cliente (10.04) y el problema aún existe. No está instalado un demonio de almacenamiento en caché de DNS, por lo que creo que de todos modos no debería haber sido un problema.
La información solicitada en el comentario:
$ grep host /etc/nsswitch.conf
hosts: files dns
/etc/resolv.conf
, Transformé los nombres de dominio consistentemente:
# 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
... y el completo /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
... y /etc/network/interfaces
, que es la fuente resolv.conf
en 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.
Nota: se realizó la transformación de los nombres de dominio sed
, por lo que es coherente entre los distintos archivos reproducidos.
No existe ~/.ssh/config
, pero aquí está el global ( /etc/ssh/ssh_config
), reducido por razones de brevedad:
$ 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
y la salida de este comandogrep host /etc/nsswitch.conf
?