Si su cliente ssh es lo suficientemente nuevo, puede usar la Matchpalabra clave del archivo de configuración para tener una configuración condicional basada en el puerto de destino.
Match host somehost exec "test %p = 42"
IdentityFile ...
El ejemplo anterior solo aplicaría la línea "IdentityFile" si el host de destino es "somehost" y el puerto de destino es 42. Matchfunciona de la misma manera Hostque las líneas que le siguen (hasta la siguiente línea Match o Host) solo se aplican a las sesiones que coinciden el criterio. En el ejemplo, la línea Match verifica que el host sea "somehost", y también ejecuta un comando externo que se considera que coincide si el comando sale con el estado 0.
El comando que se ejecuta aquí es test %p = 42. "% p" será reemplazado por el valor del puerto que ssh usaría hasta ese punto (ya sea el valor predeterminado de 22 o el valor de la línea de comando). testtambién se conoce como [; Es una utilidad de línea de comandos utilizada principalmente en scripts de shell como parte de una ifdeclaración. Aquí, testse está utilizando para probar si el número de puerto es 42.
La Matchpalabra clave ssh_config se agregó a OpenSSH en la versión 6.5 o 6.6. Consulte su ssh_configpágina de manual para ver si está disponible en su sistema.