タイトル通りです。
ホスト A はサーバー (要塞ホスト、何と呼んでも構いません) として機能します。
ここで、ホスト B は次の操作を実行します。
ssh -R 2222:localhost:22 ユーザー@A
その結果、TCPソケットはAで生成されますが、2222@にバインドされます。ループバックつまり、リモート接続を防止します。
127.0.0.1 を 0.0.0.0 に変更する方法またはその他もっと賢明ですか?
答え1
bind_address
仕様のオプション部分が抜けています-R
。ssh
ドキュメンテーション(リンク先:マイクロソフト)にはこう書かれている。
デフォルトでは、サーバ上のTCPリスニングソケットはループバックインターフェースのみにバインドされます。これは を指定することによって上書きできます
bind_address
。空のbind_address
またはアドレス は*
、リモートソケットがすべてのインターフェースでリッスンする必要があることを示します。リモートの指定は、bind_address
サーバのGatewayPorts
オプションが有効になっている場合にのみ成功します(sshd_config(5))。
パラメータの 3 タプル バージョンを使用していますが、4 タプル バージョンが必要です。
-R port:host:hostport -R [bind_address]:port:host:hostport
したがって、リモートサーバーのリスニングポートに誰でも接続できるようにするには、GatewayPorts
サーバーのsshd_config
そして次のようなコマンドバリエーションを使用します。
ssh -R :2222:localhost:22 user@A
先頭のコロン ( :
) は、どこからでも接続を許可する先頭のアスタリスク ワイルドカードも意味します。個人的には、ワイルドカードを使用したこのバージョンの方が、記述内容が意図的であることがより明確になると思います。
ssh -R *:2222:localhost:22 user@A