私が実行したとき:
ssh -i mycert -R 0:localhost:80 [email protected]
そして、「myserver.com」で次のコマンドを実行します。
curl localhost:dynamicly_assigned_port
「ssh:サーバーがポートXXXXから不要なポートを送信しています」というメッセージが表示されます。しかし、以下を実行してください。
ssh -i mycert -R 20000:localhost:80 [email protected]
curl localhost:20000
うまくいきます。動的に割り当てられたポートを使用するとこのエラーが発生しますが、静的ポートを使用すると発生しない理由を学びます。私の考えでは、以前のSSHバージョンを使用してdropbear v0.52が原因ですが、別のアイデアを探しています。ありがとう
答え1
このエラーは、クライアントが予期しなかった要求されていない転送ポートをサーバーが送信したことを意味します。簡単に言えば、dropbear SSHクライアントは、リモートサーバーが割り当てる動的に割り当てられたポート転送を処理する方法を知りません。 dropbearはそれをサポートしていません。
関連コード:
dropbearクライアントがリモート転送要求を解析し、それを追跡する転送リストに追加する場合:https://github.com/schemacs/dropbear/blob/3c4d57db86668f3cecd91566f971371fbea8684b/cli-runopts.c#L569
dropbearクライアントはremotefwds
要求を繰り返して、サーバーが設定したポート転送に一致するものを見つけようとします。https://github.com/schemacs/dropbear/blob/3c4d57db86668f3cecd91566f971371fbea8684b/cli-tcpfwd.c#L214