¿Cómo saber la dirección IP de algún host somenameque pueda ssh? Si lo hago nslookupen este host, dice "sin respuesta". ¿Cómo puede sshresolver su nombre entonces?
Ni /etc/hoststampoco .ssh/configexplicación trabajó.
EDITAR
Lo siento somenameestá totalmente calificado.
ssh somename.somedomain
funciona, mientras
ping somename.somedomain
y
nslookup somename.somedomain
no lo hagas

/etc/hostso~/.ssh/config?somename.local..locales 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 unahostsentrada. Por ejemplo:En la entrada anterior puede ver que lo primero que debe consultarse es
filesseguidodns, lo que significa que/etc/hostsse 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_configy~/.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.25para ambosdevydev.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) delsshcomando: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
sshpoder resolver un nombre de host quenslookupno puede es que esté configurado en elsshnivel.Según la
ssh_config(5)página del manual , hay tres lugares donde sesshbuscan 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)explicacionesHostyHostNamedirectivas de la página del manual y laPATTERNSsección para obtener más información.fuente
ssh user@someserverparece "resolver" elsomeservernombre DNS (incluso si esto no sucede realmente). SiHost someserverestá configurado en el.ssh/configarchivo, entonces es posible usar el comando ssh exactamente como lo indica OP incluso sisomeserverno está en el DNS en absoluto.ssh -v somenameincluye la dirección IP (independientemente de cualquierssh_configentrada). 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/configrathole, que es poco probable que haya configurado.Los comandos ...
... consulta NSS utilizando la
hosts:línea de búsqueda, en/etc/nsswitch.conflugar de solo DNS como lonslookuphace. Es probable que su entorno Unix esté utilizando más de un servicio de nombres; posiblemente algún tipo de integración AD.fuente
hostnormalmente es parte de bind-utils (o equivalente) y les gusta a ambosnslookupydigsolo usa DNS. OTOHgetent hosts(o posiblementeahosts) hace lo que usted describe.hostconsulta otros servicios de nombres. Convino en quegetent hostses el mejor método inequívoco para consultar "cualquier servicio de nombres configurado".hostes 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.