Tengo un .ssh/configarchivo configurado para conectarse a diferentes servidores con SSH:
###
# Identity files
###
IdentityFile ~/.ssh/id_dsa_home
IdentityFile ~/.ssh/id_dsa_github
IdentityFile ~/.ssh/id_rsa_bitbucket
###
# Global options
###
PasswordAuthentication no
PubkeyAuthentication yes
Host *
Port 22
Host icarus
User elitalon
HostName 192.168.1.1
Port 54301
Host zeus
User elitalon
HostName 192.168.2.1
Port 54302
Host github
User git
HostName github.com
Host bitbucket
User git
HostName bitbucket.org
Esta configuración solía funcionar bien. Sin embargo, desde que actualicé a Mac OS X Mountain Lion SSH se comporta de manera diferente con respecto a Portvalores específicos en las Hostentradas:
- Si intento conectarme a
zeusSSH siempre uso el puerto 22, en lugar de 54301. - Si elimino
Port 22e intento conectarme a aHostsin unaPortentrada, SSH usa el primerPortconjunto de valores (54301 en este ejemplo).
Después de probar diferentes combinaciones, parece que SSH procesa todos los archivos de configuración, pero solo toma el primer valor Portespecificado, que es un comportamiento esperado según la página de manual:
Para cada parámetro, se usará el primer valor obtenido
Pero la página del manual también dice que
Los archivos de configuración contienen secciones separadas por especificaciones de `` Host '', y esa sección solo se aplica a hosts que coinciden con uno de los patrones dados en la especificación.
así que pensé que al no especificar ningún Portvalor, el puerto predeterminado cambiaría solo en aquellas secciones donde realmente tiene un Portvalor.
Entonces, ¿cómo puedo configurar Hostentradas para usar el puerto 22, excepto donde se especifica otro valor?
¡Gracias!
fuente
