OpenSSH ~ / .ssh / config las anulaciones específicas del host no funcionan

16

Intenté configurar mi ~/.ssh/configarchivo con la ayuda de esta guía. Sin embargo, la anulación de usuario específica del host no tiene efecto y ssh intenta conectarse usando el nombre de usuario global en lugar del nombre de usuario específico del host. Mi configuración ssh está configurada así:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

También he intentado poner el nombre de usuario global debajo de una Host *entrada en vano. La versión y compilación de OpenSSH que estoy ejecutando es OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

andyn
fuente

Respuestas:

29

No hay valor "global" en .ssh/config. Si desea tener un valor predeterminado, debe ponerlo en una Host *sección:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Tenga en cuenta el pedido: ¡el primer partido gana!

cran
fuente
2
Un par de preguntas de seguimiento: 1) ¿Ha cambiado el comportamiento recientemente? La guía en el sitio web vinculado se muestra claramente Host *en la parte superior.
andyn
2) El primer partido gana, pero aparentemente solo para aquellos valores que establece explícitamente. ¿Está esto documentado en alguna parte? Man ssh_config no muestra nada relacionado en las secciones Host o PATTERNS.
andyn
66
La primera oración del segundo párrafo en ssh_config (5) dice: "Para cada parámetro, se usará el primer valor obtenido". No sé si eso cambió recientemente, pero tuve "Host *" en la parte inferior todo el tiempo.
Cran