シナリオは次のとおりです。ホストは4つあります。
- クライアント/ローカルホスト
- AWSバスチョンホスト(ポート22のみ)
- グラフィックデスクトップを持つEC2インスタンス(プライベートサブネット)
- WebLogic Serverコンテナを実行するDockerを持つEC2インスタンス(グラフィックなし)
問題:Baschenホストを介してインターネットブラウザを介してこのWebLogicサーバーにアクセスできる必要があります。これで、Baschenホストのポート22しか使用できませんが、発信接続はすべて有効になります。
私の考えは、バスチャンホストを介してTightVNCビューアとSSHトンネルを使用してGUIインスタンスに到達することです。
今私の問題は、私の要塞ホストにユーザーのリスニングポート22を宛先ポート5905に転送する方法がわからないことです。要塞ホストへのルートアクセス権がありません。
これまで私が見つけたすべてのソリューションは、VNCを使用するのではなく、コマンドラインを介したSSHingに関連しています。可能な場合にのみ、ユーザーのためにポート22トラフィックをVNCポートに自動的に転送するには、バスチョンが必要ですが、100%必要ではありません。
public public private private
[user/client] --22-->[bastion]--VNC:5905-->[VNC Server]--80/443-->[Docker/WLS]
GUI CLI GUI CLI
答え1
これは非常に一般的な現象であり、パブリッククライアントシステムが続いていますssh -L 5905:vnchost:5905 user@bastionhost
。vncviewer localhost:5905
-L 5905:vnchost:5905
(または次のように作成されます)パラメータは、-L localhost:5905:vnchost:5905
SSHクライアントノードがポートを開いてクライアントのVNCビューアが接続を開始しようとしたときに、localhost:5905
BaxchenホストのSSHサーバーデーモンがトンネリングを試みる必要があることを意味します。vnchost:5905
接続を確立できない場合、SSHセッションにエラーメッセージが表示されます(VNCクライアントでもエラーが発生する可能性があります)。
答え2
同じ設定があり、bastionが要塞のホスト名、10.1.1.1がec2インスタンスである次のように実装しました。
ssh -v -l user -L 5901:localhost:5901 bastion ssh -o StrictHostKeyChecking=no -L 5901:localhost:5901 -N [email protected]
次に、vncを介してlocalhost:5901に接続します。