Tengo dos hosts FreeBSD 9 y quiero mantener un túnel para llegar al host R con firewall desde un puerto alto en el host C de la nube.
ssh -y -i tunnel_id_rsa -o ConnectTimeout=60 -o ServerAliveInterval=20
-o ServerAliveCountMax=5 -oBatchMode=yes -o ExitOnForwardFailure=yes
-nNR :11432:127.0.0.1:443 [email protected]
Esto funciona la mayor parte del tiempo. Pero en el caso de que el puerto sea defectuoso y no se pueda escuchar en C, no veo esa información enviada al cliente que llama en R. Al leer los documentos y leer otras preguntas, parece que se supone que ExitOnForwardFailure hacer esto. Pero no es así... Veo un error en los registros en c:error: bind: Address already in use
Y luego, en RI, simplemente tenga una conexión ssh inútil y sin cabeza a C que nunca morirá y nunca servirá de nada. Lo que quiero hacer es que ese proceso ssh muera cuando falle el enlace para poder volver a intentarlo.
¿Hay algo más que impida que los mensajes de protocolo regresen a R? ¿Algo impide que funcione ExitOnForwardFailure? Tampoco veo nada en stderr en R sobre el error, lo que parece sospechoso según otros informes y preguntas.
(He intentado eliminar las opciones -y y -n, así como usar una contraseña interactiva normal con una clave... el mismo resultado).