私は 2 台の FreeBSD 9 ホストを持っており、クラウド ホスト C の高ポートからファイアウォールで保護されたホスト R に到達するためのトンネルを維持したいと考えています。
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 では、C へのヘッドレスの役に立たない ssh 接続が存在します。これは決して終了せず、何の役にも立ちません。私がやりたいのは、バインドが失敗したときにその ssh プロセスが終了して再試行できるようにすることです。
プロトコル メッセージが R に戻るのを妨げる何か他のものがありますか? ExitOnForwardFailure が機能するのを妨げる何かがありますか? R の stderr にもエラーに関する何も表示されませんが、他のレポートや質問に基づくと疑わしいようです。
(-y および -n オプションを削除したり、キーなしの通常の対話型パスワードを使用したりしてみましたが、結果は同じでした。)