SSH パスワードは SOCKS パスワードではありません
OpenSSH の動的リスナーにおける SSH ログインと SOCKS クライアント認証を区別します。
ssh -D を開始するためにパスワードを入力しました。それは SSH 接続を認証したものです。新しいリスナーに到達できるすべてのプログラムに、パスワードで保護された SOCKS アカウントを作成したわけではありません。
OpenSSH の動的転送は、認証済みの SSH トランスポート上でローカル SOCKS サービスを提供します。その SOCKS5 処理は認証なしの方式を選択します。汎用の SOCKS ユーザー名/パスワードサーバーではありません。
個人利用ならローカルにバインドします:
ssh -N -D 127.0.0.1:1080 [email protected]
そのコンピューター上のアプリケーションは、SSH パスワードを SOCKS パスワードとして入力せずにポート 1080 を使います。動的転送のドキュメントがリスナーを説明し、OpenSSH の SOCKS 処理のソースが認証の詳細を示します。
共有すると問題が変わる
LAN アドレスにバインドすると、当初のローカル利用の範囲を超えてポートに到達できます。近くのクライアントは、自分の通信があなたの通信を通るというだけでは別個の SSH セッションを確立しません。ネットワークがアクセスを許せば、それらのクライアントはゲートウェイの外向きの身元を共有できます。
ファイアウォールは到達可能なクライアントを制限できますが、SOCKS ログインのやり取りを追加するわけではありません。別々の SOCKS ユーザー名、割り当て、ユーザーごとの規則が必要なら、それらの機能を備えたサーバーを選んでください。たとえば Dante はクライアントアドレスの制限とは別に SOCKS 認証を文書化しています。
これはトラブルシューティングにも役立ちます。SOCKS のユーザー名/パスワード方式に固執するクライアントは、期待どおりにこのリスナーと交渉できないかもしれません。アプリケーションを調整するか、適切な認証付き SOCKS サービスを選んでください。SSH パスワードを繰り返し試すのは、誤ったログインに対処していることになります。
ローカル限定の到達性は依然として理解すべき境界であり、ローカルコンピューター上のすべてのプロセスが同じユーザーに属するという主張ではありません。