1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【コピペOK】もう踏み台サーバーに苦しめられない。SSHの多段接続を1秒で終わらせる `ProxyJump` の魔法

1
Posted at

はじめに:長すぎるSSHコマンドと、埋もれるターミナル履歴

セキュリティの要件で、データベースサーバーや内部のAPIサーバーに直接アクセスできない。
必ず「踏み台サーバー(Bastion)」を一度経由しなければならない。これ、インフラあるあるですよね。
昔の私は、本番DBに繋ぐために、ターミナルでこんな呪文を唱えていました。

# まず踏み台に入る
$ ssh user@bastion.example.com
# 踏み台からDBサーバーへ
bastion$ ssh db-user@10.0.1.55

あるいは、ポートフォワードや ProxyCommand を駆使して、暗号のように長いワンライナーを書いていました。
「あれ、どっちのサーバーにいるんだっけ?」「踏み台のセッションが切れてやり直しだ…」
タイポに怯えながら長いコマンドを打つたびに、私は自分の寿命が削られていくのを感じていました。
でも、安心してください。
OpenSSH 7.3以降を使っているなら、あなたのその苦労は1行の設定で永遠に消え去ります。それが ProxyJump (-J) です。

技術解説:「ワープポイント」を定義する ~/.ssh/config

ProxyJump は、「このサーバーに繋ぐときは、あっちのサーバーを自動的に経由(ジャンプ)してね」とSSHクライアントに教え込む機能です。

魔法の設定ファイル

あなたのPCの ~/.ssh/config に、以下の内容をコピペして書き換えるだけです。

# 1. まずは踏み台 (Bastion) の定義
Host bastion
    HostName bastion.example.com
    User your_jump_user
    IdentityFile ~/.ssh/id_rsa_bastion
# 2. 最終目的地のDBサーバーの定義
Host prod-db
    HostName 10.0.1.55
    User db_user
    IdentityFile ~/.ssh/id_rsa_db
    # ここが魔法の1行!!!
    ProxyJump bastion

図解:ProxyJumpによる「直通トンネル」

設定前は、2回のドアを自分の手で開ける(2回コマンドを打つ)必要がありました。
ProxyJump を使うと、1つ目のドアを開けた瞬間に、自動的に2つ目のドアを開けて中に入れてくれます。

[あなた] ===(魔法の自動ジャンプ)===> [本番DB (prod-db: 10.0.1.55)]
            ↓(裏で自動的によしなにしてくれる)
        [踏み台 (bastion)]

驚愕の接続コマンド

設定が完了したら、ターミナルで打つコマンドはたったこれだけです。

$ ssh prod-db

これだけで、裏で自動的に踏み台を経由し、一発で本番DBのプロンプトが現れます。
パスワード入力が必要な場合でも、踏み台→本番DBの順にプロンプトが出るので迷うことはありません。

シームレスなCLI体験への到達

ProxyJump を設定したあの日から、私のターミナル履歴から長くて醜いSSHコマンドは完全に姿を消しました。
ファイル転送(scp)も、まったく同じように機能します。
scp file.txt prod-db:/tmp/ と打てば、踏み台経由であることを全く意識せずに、スルッとファイルが転送されるのです。
「踏み台サーバー」という壁は、セキュリティ上必要なものですが、開発者の生産性を落とす理由にはなりません。
もしあなたが今も2段階のSSH接続を手動で行っているなら、今すぐ ~/.ssh/config を開いて ProxyJump を書き込んでください。
「最初からこれを知っていれば…!」と天を仰ぐこと間違いなしです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?