Necesito iniciar sesión en varios servidores en el trabajo para hacer mi trabajo. Me estoy cansando de escribir el FQDN de un servidor para acceder. Me conecto / desconecto a través de ssh en nuestra propia red privada. Estoy 99% seguro de que está en nuestra propia red privada porque todos los servidores tienen ip addr 10.xyz ¿Hay alguna manera de ingresar a los servidores con solo el nombre de host y no el nombre de dominio?
Tenemos servidores en varios países. La forma en que se nombran nuestros servidores es muy larga. Se nombra de la siguiente manera:
hostname.country.domainname.com
Estoy recibiendo el túnel carpiano escribiendo
ssh [email protected]
... cada vez que accedo a uno de nuestros servidores. Si estoy en los EE. UU. Y trato de acceder a otro host que está en los EE. UU., Solo puedo escribir ssh me@hostname2
y me conecto bien. Sin embargo, si estoy en los EE. UU. E intento conectarme a un servidor en Inglaterra, no puedo escribir ssh [email protected]
ni conectarme a él hostname3
.
La solución que hice fue configurar un alias en mi archivo ~ / .ssh / config para algunos de los servidores. Sin embargo, no creo que sea factible agregar más de 1000 servidores en ese archivo. Ya agregué más de 20 servidores y mis compañeros de trabajo piensan que estoy loco, aunque creo que están locos por escribir el FQDN cuando están jugando.
¿Hay alguna manera fácil de configurar algo para que no tengamos que escribir nuestro domainname.com cada vez?
fuente
$HOME/.ssh/config
o puedes hacerlo en todo el sistema/etc/ssh/ssh_config
user@*.eng
?ssh [email protected]
y funcionará como se esperaba. Todo lo que hace es reescribir el componente del nombre de host. Incluso te permite trabajar conscp
ysftp
y así sucesivamente.Si agregas
a
/etc/resolv.conf
, y usarhostname.country
,ssh
(y otros programas de red, para el caso) se agregarán automáticamentedomainname.com
para usted 1 .No creo que
search
sea una buena idea agregar dominios de país diferentes a su ruta porque puede tener un comportamiento inesperado si dos servidores en dos países diferentes comparten el mismo nombre de host 2Creo que este método es mejor que cambiar la
ssh
configuración porque permitehostname.country
resolverlo independientemente del programa que esté utilizando (telnet
, VNC, ...).Ver
resolv.conf(5)
1 Más exactamente, se agregará
domainname.com
si no se puede resolverhostname.country
por sí solo.2 En tal escenario,
hostname
se resolverá en el servidor del país cuyo dominio aparece primero en lasearch
ruta.fuente
man resolv.conf
Puede usar la
CanonicalDomains
opción en su configuración ssh.Agregar lo siguiente a su archivo de configuración ssh hará que ssh intente agregar
domainname.com
a cualquier host que tenga como máximo 1 punto en su nombre:Con esta configuración
ssh foo.eng
, primero lo intentaráfoo.eng.domainname.com
y recurrirá afoo.eng
si no se puede encontrar el host. Del mismo modo,ssh github.com
primero lo intentaremosgithub.com.domainname.com
, por lo que si desea conectarse a GitHub, su servidor DNS no debería devolver registros de hosts no existentes.Se
CanonicalizeMaxDots
puede usar para controlar cuántos puntos pueden aparecer en el nombre de host antes de que ssh lo considere totalmente calificado y no se agreguedomainname.com
. el valor predeterminado es 1, que debería ser suficiente para usted dado el esquema que tiene actualmente, pero si alguna vez llega a algo asíhostname.city.country
, necesitaría aumentarlo.fuente