¿Cómo saber la dirección IP de algún host somename
que pueda ssh
? Si lo hago nslookup
en este host, dice "sin respuesta". ¿Cómo puede ssh
resolver su nombre entonces?
Ni /etc/hosts
tampoco .ssh/config
explicación trabajó.
EDITAR
Lo siento somename
está totalmente calificado.
ssh somename.somedomain
funciona, mientras
ping somename.somedomain
y
nslookup somename.somedomain
no lo hagas
/etc/hosts
o~/.ssh/config
?somename.local
..local
es un dominio especial reservado para mDNS. Para LLMNR, podría usar este script NMAP.Respuestas:
Nslookup es un programa para consultar servidores de nombres de dominio de Internet . Nslookup es muy bueno para consultar servidores DNS, pero no le da la imagen completa cuando se trata de la resolución de nombres.
En Linux resolución de nombres se controla con mayor frecuencia por NSS , que está configurado por
/etc/nsswitch.conf
. Específicamente, esta configuración contiene unahosts
entrada. Por ejemplo:En la entrada anterior puede ver que lo primero que debe consultarse es
files
seguidodns
, lo que significa que/etc/hosts
se consultará antes de DNS. Existen otras opciones que incluyen LDAP , DNS de multidifusión y WINS .Respondiendo su pregunta directamente, SSH resuelve el nombre de host a una dirección IP usando NSS (obteniendo resultados de múltiples fuentes) donde nslookup solo consulta el DNS.
Puede verificar para ver qué IP NSS resuelve un nombre de host para usar getent. Por ejemplo para resolver
somename
:Además, en el caso de SSH, puede configurar información específica del host en
/etc/ssh/ssh_config
y~/.ssh/config
. Esto incluso le permitirá especificar una dirección IP para un nombre de host, omitiendo por completo la resolución de nombre .:Lo siguiente le dice a SSH que use
192.168.1.25
para ambosdev
ydev.example.com
. SSH usará esta dirección independientemente de si estos nombres existen o no como nombres DNS para una IP diferente:fuente
Use la bandera detallada (
-v
) delssh
comando:El resultado debe contener, entre otras cosas, una línea que muestre la IP resuelta del servidor al que se está conectando:
La causa más probable de
ssh
poder resolver un nombre de host quenslookup
no puede es que esté configurado en elssh
nivel.Según la
ssh_config(5)
página del manual , hay tres lugares donde sessh
buscan los archivos de configuración:Uno de estos archivos puede contener su nombre de host
somename
(o un patrón que coincida) como un alias de otro nombre de host o IP. Por ejemplo:Consulte las
ssh_config(5)
explicacionesHost
yHostName
directivas de la página del manual y laPATTERNS
sección para obtener más información.fuente
ssh user@someserver
parece "resolver" elsomeserver
nombre DNS (incluso si esto no sucede realmente). SiHost someserver
está configurado en el.ssh/config
archivo, entonces es posible usar el comando ssh exactamente como lo indica OP incluso sisomeserver
no está en el DNS en absoluto.ssh -v somename
incluye la dirección IP (independientemente de cualquierssh_config
entrada). Por lo tanto, responde directamente a la pregunta "¿Cómo saber la dirección IP de algún nombre de host con el que puedo hacer ssh?", Además de ser un buen primer paso para responder "¿Cómo puede ser que ese nombre de ssh funcione ...?".Philip está casi allí, pero se dirige por la
.ssh/config
rathole, que es poco probable que haya configurado.Los comandos ...
... consulta NSS utilizando la
hosts:
línea de búsqueda, en/etc/nsswitch.conf
lugar de solo DNS como lonslookup
hace. Es probable que su entorno Unix esté utilizando más de un servicio de nombres; posiblemente algún tipo de integración AD.fuente
host
normalmente es parte de bind-utils (o equivalente) y les gusta a ambosnslookup
ydig
solo usa DNS. OTOHgetent hosts
(o posiblementeahosts
) hace lo que usted describe.host
consulta otros servicios de nombres. Convino en quegetent hosts
es el mejor método inequívoco para consultar "cualquier servicio de nombres configurado".host
es solo DNS según las páginas de manual y se confirma mediante pruebas en los sistemas que uso (CentOS, Ubuntu, FreeBSD, Solaris), así como en sentido ascendente . También vea los engaños (cercanos) que comenté en la Q que también dicen esto.