У меня есть два хоста FreeBSD 9, и я хочу настроить туннель для доступа к защищенному брандмауэром хосту R с высокого порта на облачном хосте 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]
Это работает большую часть времени. Но в случае, если порт плохой и его невозможно прослушать на C, я не вижу, чтобы эта информация была возвращена вызывающему клиенту на R. Читая документацию и читая другие вопросы, кажется, что ExitOnForwardFailure должен это делать. Но он этого не делает... Я вижу ошибку в журналах на c:error: bind: Address already in use
А затем на RI просто будет бесполезное ssh-подключение к C, которое никогда не умрет и никогда не принесет никакой пользы. Я хочу, чтобы этот ssh-процесс умирал, когда привязка не удается, чтобы я мог повторить попытку.
Есть ли что-то еще, что мешает сообщениям протокола вернуться в R? Что-то, что мешает ExitOnForwardFailure работать? Я также не вижу ничего в stderr на R об этой ошибке, что кажется подозрительным, исходя из других отчетов и вопросов.
(Я пробовал убрать опции -y и -n, а также использовать обычный интерактивный пароль без ключа... результат тот же.)