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