SSH SOCKS: チャネルを開くときの接続拒否
SSH 動的転送のチャネルエラーを、要求した先の接続の失敗として読む。ローカルの SOCKS リスナーが起動していないと決めつけない。
channel 5: open failed: connect failed: Connection refused は、SSH サーバーから開かれる先の接続に関するものだ。そのチャネルが失敗していても、ローカルの SOCKS リスナーと SSH ログイン自体はどちらも正常に動いていることがある。
経路には三つの端点がある。アプリケーションがローカルの SOCKS リスナーに接続し、SSH セッションがその要求をサーバーへ運び、サーバーが要求された宛先への接続を開く。
| チャネルの失敗 | 次に調べること |
|---|---|
| 管理者による禁止 | SSH サーバーが要求された転送操作を許可しているか |
| 先の接続が拒否された | SSH サーバーから見た、要求された宛先ホスト、ポート、リスナー |
ノート PC から到達できるサービスが、そのサーバーからは存在しない、または到達できないことがある。ループバック宛先も、先の接続を開くマシン自身のものだ。自動的にノート PC を指すわけではない。
チャネルのイベントを、本当に必要な要求と結び付ける。ページは多くの宛先を要求でき、任意のアセットが一つ拒否されたからといってページ全体が失敗したとは限らない。
バイト列がこの経路に合わない場合は、転送モードを確認する。固定転送は設定されたサービスへトラフィックを運び、動的転送は SOCKS の宛先要求を受け付ける。SOCKS リスナーに送られた HTTP、または固定の Web サーバー転送に送られた SOCKS は、別のプロトコル境界で失敗する。
ローカルのリスナー、SSH の端点、要求した宛先を別々に記録する。そうすればどちら側に対処が必要か分かる。ローカルのポートを変えても、存在しないリモートサービスは起動しない。