channel 5: open failed: connect failed: Connection refused は、SSH サーバーから開かれる先の接続に関するものだ。そのチャネルが失敗していても、ローカルの SOCKS リスナーと SSH ログイン自体はどちらも正常に動いていることがある。

経路には三つの端点がある。アプリケーションがローカルの SOCKS リスナーに接続し、SSH セッションがその要求をサーバーへ運び、サーバーが要求された宛先への接続を開く。

チャネルの失敗次に調べること
管理者による禁止SSH サーバーが要求された転送操作を許可しているか
先の接続が拒否されたSSH サーバーから見た、要求された宛先ホスト、ポート、リスナー

ノート PC から到達できるサービスが、そのサーバーからは存在しない、または到達できないことがある。ループバック宛先も、先の接続を開くマシン自身のものだ。自動的にノート PC を指すわけではない。

チャネルのイベントを、本当に必要な要求と結び付ける。ページは多くの宛先を要求でき、任意のアセットが一つ拒否されたからといってページ全体が失敗したとは限らない。

バイト列がこの経路に合わない場合は、転送モードを確認する。固定転送は設定されたサービスへトラフィックを運び、動的転送は SOCKS の宛先要求を受け付ける。SOCKS リスナーに送られた HTTP、または固定の Web サーバー転送に送られた SOCKS は、別のプロトコル境界で失敗する。

ローカルのリスナー、SSH の端点、要求した宛先を別々に記録する。そうすればどちら側に対処が必要か分かる。ローカルのポートを変えても、存在しないリモートサービスは起動しない。

関連記事