Comprendo cómo funciona ~ / .ssh / config es que cada línea 'Host' tiene efecto para cualquier coincidencia de host después de ese punto en el archivo de configuración.
Tengo varios servidores personales y servidores de trabajo a los que necesito conectarme. Estoy tratando de hacer algo como lo siguiente:
# Configuración general ControlMaster auto ControlPath ~/.ssh/controlmaster/%r@%h:% p ForwardAgent sí Reenviar X11 sí GSSAPIA autenticación no Pubkey Autenticación sí # Servidores personales Anfitrión * Usuario harleypig IdentityFile ~ / .ssh / personal_id_rsa Host host1 Nombre de host host1.com Host host2 Nombre de host host2.com # Servidores de trabajo Anfitrión * Usuario alan.young IdentityFile ~ / .ssh / work_id_rsa Trabajo anfitrión1 Nombre de host work1.companyserver.com Trabajo anfitrión2 Nombre de host work2.companyserver.com Anfitrión * Usuario devuser Host dev1 Nombre de host dev1.companyserver.com Host dev2 Nombre de host dev2.companyserver.com
Los documentos parecen indicar que host1 y host2 deberían usar 'personal_id_rsa' y el usuario harleypig. work1, work2, dev1 y dev2 deberían usar 'work_id_rsa' y los dos primeros deberían ser el usuario 'alan.young' y dev1 y dev2 deberían ser el usuario 'devuser'
Sin embargo, esto no está sucediendo. Cualquier 'Host *' que coloque primero es con lo que intentan conectarse todos los hosts siguientes. ¿Estoy malentendido o me falta algo?
Respuestas:
Del
ssh_config
manual :Entonces, en su ejemplo, todos los hosts usarán
User harleypig
yIdentityFile ~/.ssh/personal_id_rsa
.Piense en las
Host
directivas con comodines como retrocesos: use la siguiente configuración solo si aún no se han configurado. Necesitas escribir algo como esto:Puede poner múltiples patrones en una
Host
línea si un conjunto dado de alias de host no puede coincidir con comodines, por ejemploHost host* more* outlier
.fuente
Definitivamente lo estás haciendo mal.
Host *
como la última entrada.Host *
entradasSi sus máquinas de trabajo tienen un formato de nombre que puede generalizar para apuntar solo a las máquinas de trabajo, por ejemplo: machine1.work.com, host.work.com, fileserver.work.com, puede dirigir sus máquinas de trabajo como:
Lo mismo aplica para sus máquinas personales.
fuente
Host *
al principio del archivo parece funcionar bien. ¿Quizás el hecho de que esté usando un comodín supera el hecho de que es la primera entrada al priorizarlos?Host *.work.com
es una sintaxis no válida. Solo funciona al revés:Host myserver*
Host *subdomain.com
, no va a responder.