Eu tenho dois hosts do FreeBSD 9 e quero manter um túnel para acessar o host R com firewall a partir de uma porta alta no host de nuvem C.
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]
Isso funciona na maioria das vezes. Mas no caso em que a porta é ruim e não pode ser ouvida em C, eu não estou vendo essa informação alimentada de volta para o cliente de chamada em R. Lendo os documentos e lendo outras perguntas, parece que ExitOnForwardFailure deve faça isso. Mas isso não acontece ... vejo um erro nos logs em c: error: bind: Address already in use
E então no R eu só tenho uma conexão ssh headless inútil com o C que nunca vai morrer e nunca fazer nada de bom. O que eu quero fazer é apenas para que o processo ssh morra quando o bind falhar para que eu possa tentar novamente.
Existe algo mais que impede que mensagens de protocolo voltem ao R? Algo impedindo ExitOnForwardFailure de funcionar? Eu não vejo nada no stderr on R sobre o erro, o que parece suspeito com base em outros relatórios e perguntas.
(Eu tentei eliminar as opções -y e -n, bem como usar uma senha interativa normal sem uma chave ... mesmo resultado.)