Tengo un .ssh/config
archivo 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 Port
valores específicos en las Host
entradas:
- Si intento conectarme a
zeus
SSH siempre uso el puerto 22, en lugar de 54301. - Si elimino
Port 22
e intento conectarme a aHost
sin unaPort
entrada, SSH usa el primerPort
conjunto 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 Port
especificado, 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 Port
valor, el puerto predeterminado cambiaría solo en aquellas secciones donde realmente tiene un Port
valor.
Entonces, ¿cómo puedo configurar Host
entradas para usar el puerto 22, excepto donde se especifica otro valor?
¡Gracias!
fuente