SSHポート転送にジャンプホストを使用する

SSHポート転送にジャンプホストを使用する

ジャンプホストがAWS Cloud9と連携する方法を理解しようとしています。下の写真はからのものです。ブログ投稿(私の準備サーバーから)このトピックに関する記事を書いています。シーン全体(3,000語未満)については、ブログ投稿をご覧ください。

チャート

以下は、管理者がクライアント(ノートブック)を使用して実行する4方向の初期化順序です。

  1. 管理者は、$C9_TARGET_HOST(コマンドライン)ターミナルを使用してターゲットサーバー()にログインし、ターミナルを開いたままにします。
  2. 管理者は2番目の(コマンドライン)端末を使用してジャンプホスト()にログインし、$C9_JUMP_HOST端末を開いたままにします。
  3. 管理者は$C9_JUMP_PORTジャンプホストでポート()を開き、sshAWS Cloud9への接続を受け入れます。
  4. 管理者は、WebブラウザをCloud9 Webコンソールに接続してCloud9環境の定義を開始します。
  5. 管理者は、Cloud9 SSHキーを提供するWebページに到達すると、そのキーをクリップボードにコピーします。
  6. 管理者は、ターゲットサーバーに接続されたオープンターミナルを使用して、次のことを行います。
      にCloud9 SSHキーを追加します~/.ssh/authorized_hosts。新しいhostブロックを追加すると、~/.ssh/configターゲットサーバーからジャンプホストへのリバースSSHポート転送トンネルをより簡単に定義できます。
  7. 管理者は、ジャンプホストに接続されたオープンターミナルを使用して、次のことを行います。
      Cloud9 SSHキーを~/.ssh/authorized_hostshost~/.ssh/configssh
  8. 管理者は、sshターゲットサーバーからジャンプホストへのリバースポート転送トンネルを定義しました。つまり、ジャンプホストがジャンプで指定されたポート()との接続を確立すると、ssh 以下を介してターゲットサーバーに再接続されます。トンネルおよび転送コマンド$C9_JUMP_PORTホスト。
    SSH -fNR\
    $C9_JUMP_HOST:$C9_JUMP_PORT:localhost:22 $C9_JUMP_USER@$C9_JUMP_HOST
    「-T」オプションが役に立つかどうか疑問に思います。 「nohup」を使うべきですか?
  9. 管理者は、作成した定義を使用してリバースポート転送トンネルを作成します。 nohup管理者がログアウトした後もそのままになるようにトンネルを作成するときに使用されます。
  10. Cloud9 Webコンソールでジャンプホストを定義したら、管理者は次へボタンをクリックします。
  11. Cloud9 はジャンプホストに接続しようとします。
  12. Cloud9 はジャンプホストを介してターゲットサーバーに接続しようとします。
  13. 成功すると、Cloud9 は管理者ウェブページを次のステップに進みます。
  14. 管理者は、Cloud9環境が定義されるまで表示される各次のボタンをクリックします。

解決策がある人なら誰にでもブログ投稿を通じて功労を認めたいと思います。

ベストアンサー1

その場合は、ターゲット(プライベートサーバー)からジャンプホスト(パブリックサーバー)にリバーストンネルを設定して、AWSからターゲットへの接続を確立できるようにすることです。

この場合、宛先にリバーストンネルを構築する必要があるため、次のように呼び出すことができます。

ssh -f -N -R $JUMPER:$PORT:localhost:22 $USER@$JUMPER

リバーストンネルを開いたままにするには、「ssh」の代わりに「autossh」を試すこともできます。このコマンドは、モニター・ポートに追加のパラメーターを使用します。

autossh -M $MONITORPORT -f -N -R $JUMPER:$PORT:localhost:22 $USER@$JUMPER

$PORT:localhost:22 部分のみを使用する場合は、次の 2 つのステップを経て目標に達する必要があります。

  1. AWS でサーバーをジャンプするための SSH
  2. リバーストンネリングを使用するには、ジャンプサーバーでlocalhost:$ PORTでSSHを実行します。

助けてくれたら、ジョージ

おすすめ記事