ジャンプホストを使用してリモートサーバーにアクセスする方法

ジャンプホスト(ジャンプサーバーとも呼ばれます)は、リモートネットワークへの中間ホストまたはSSHゲートウェイであり、非武装地帯(DMZ)などの異種セキュリティゾーン内の別のホストに接続することができます。 それは2つの異なった保証地帯をつなぎ、それらの間の管理されたアクセスを提供する。

ジャンプホストは、特にインターネット上のユーザーにサービスを提供するサーバーを持つプライベートネットワークとDMZにまたがる場合には、高度に保護され、監視されるべきである。

古典的なシナリオは、ファイアウォールでDMZに高度に保護されている会社の内部ネットワーク内からデスクトップまたはラップトップから接続しています。 DMZ内のサーバーを簡単に管理するには、ジャンプホストを介してアクセスできます。

この記事では、ジャンプホストを介してリモートLinuxサーバーにアクセスする方法を説明し、ユーザーごとのSSHクライアント構成で必要な設定を構成します。

次のシナリオを考えてみましょう。

SSH Jump Host
SSH Jump Host

上記のシナリオでは、ホスト2に接続しますが、ファイアウォール、ルーティング、アクセス権限のため、ホスト1を経由する必要があります。 Jumphostsが必要な理由にはいくつかの正当な理由があります。.

動的Jumphostリスト

ジャンプホストを介してターゲットサーバーに接続する最も簡単な方法は、コマンドラインから-Jフラグを使用することです。 これは、sshにジャンプホストへの接続を確立し、そこからターゲットサーバーへのTCP転送を確立するように指示します(マシン間でパスワードのないSSHログイン

$ ssh -J host1 host2

マシン上のユーザー名またはポートが異なる場合は、次のように端末上で指定します。

$ ssh -J username@host1:port username@host2:port 

複数のJumphostsリスト

同じ構文を使用して、複数のサーバー上でジャンプを行うことができます。

$ ssh -J username@host1:port,username@host2:port username@host3:port

静的jumphostリスト

静的jumphostリストとは、マシンを接続するために必要なjumphostまたはjumphostsを知っていることを意味します。 したがって、~/.ssh/configファイルに次の静的jumphost’routing’を追加し、示されているようにホストエイリアスを指定する必要があります。

### First jumphost. Directly reachableHost vps1 HostName vps1.example.org### Host to jump to via jumphost1.example.orgHost contabo HostName contabo.example.org ProxyJump contabo

ここで、図のようにジャンプホストを介してターゲットサーバーに接続してみてください。

$ ssh -J vps1 contabo
Jumphost経由でターゲットホストにログイン
Jumphost経由でターゲットホストにログイン

二つ目の方法は、ProxyCommandオプションを使用して、jumphost設定を~.ssh/configまたは$HOME/.ssh/configファ

この例では、ターゲットホストはcontaboで、jumphostはvps1です。

Host vps1HostName vps1.example.orgIdentityFile ~/.ssh/vps1.pemUser ec2-userHost contaboHostName contabo.example.orgIdentityFile ~/.ssh/contabovpsPort 22User adminProxy Command ssh -q -W %h:%p vps1

ここで、コマンドProxy Command ssh -q -W %h:%p vps1は、quietモード(-qを使用)でsshを実行し、stdio転送(-Wを使用)モードでは、中間ホスト(vps1)を介して接続をリダイレクトすることを意味します。

次に示すように、ターゲットホストにアクセスしようとします。

$ ssh contabo

上記のコマンドは、最初にProxyCommandによって影響されたバックグラウンドでvps1へのssh接続を開き、その後、ターゲットサーバー contaboへのsshセッションを開始します。詳細については、sshのmanページを参照するか、OpenSSH/Cookbxook/ProxiesおよびJump Hostsを参照してください。

それは今のところすべてです! この記事では、ジャンプホストを介してリモートサーバーにアクセスする方法を示しました。 質問をしたり、私たちとあなたの考えを共有するには、以下のフィードバックフォームを使用してください。

コメントを残す

メールアドレスが公開されることはありません。