Cuando trato de SSH a un host en la red nombrada storage, recibo un error de resolución de DNS:
$ ssh storage
ssh: Could not resolve hostname storage: Name or service not known
Pero cuando consulto DNS con el host, funciona
$ host storage
storage has address 192.168.20.103
¿Cómo es que hostpuede encontrar la IP pero sshno puede?
domain-name-system
ssh
jldugger
fuente
fuente

storagees un dominio de nivel superior en vivo en Internet.stoy luego presiono Tab.Respuestas:
sshyhostresolver nombres siguiendo rutas completamente diferentes, por lo que no es sorprendente que a veces den resultados diferentes, especialmente cuando el nombre a resolver no es un FQDN (de ahí la sugerencia de usar FQDN en todas partes).No mencionas nada sobre tu sistema operativo y la configuración de tu sistema, así que tengo que mantenerlo en general, con un ojo en Linux: los detalles de MacOS son algo diferentes y Windows aún más, pero los conceptos generales son los mismos.
hostconsulta DNS, por lo que básicamente busca/etc/resolv.confy consulta los servidores enumerados allí, posiblemente adjuntando un nombre de dominio si el nombre de host aún no está completamente calificado. Ignora todas las demás fuentes posibles, pero tenga en cuenta que en estos días muchos sistemas ejecutan un servidor DNS de almacenamiento en caché local (generalmentednsmasq) que lee/etc/hostsy otras fuentes antes de consultar otros servidores DNS, por lo que si lashostconsultas a ese servidor local, los resultados/etc/hostspueden arrastrarse.sshsigue su propio camino. Describiré quéopensshhace bajo Linux, otras implementaciones difieren. Primero busca los apodos de host definidos en los archivos de configuración (en todo el sistema/etc/ssh/ssh_configy por usuario~/.ssh/config), luego busca otras fuentes en el orden especificado por lahosts:directiva/etc/nsswitch.conf. Digamos que es algo como:Esto significa: buscar
/etc/hostsy luego consultar el DNS (/etc/resolv.confnuevamente). Otras fuentes posibles son los obsoletosnisy losnetinfoservicios, LDAP, el directorio activo, los nombras.Para depurar su caso particular, debe seguir el camino que
sshsigue su implementación y averiguar dónde se atasca.fuente
/etc/nsswitch.confa leerhosts: files dnsfuncionó para mí. Solo como una nota al margen interesante, he configurado varios Raspberry Pis con Raspian Jessie las últimas semanas, y todos han requerido este cambio.