0
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?

More than 1 year has passed since last update.

【Oracle Cloud】Bastionサービスを用いて、簡易的にSSH接続してみた

Last updated at Posted at 2022-08-15

はじめに

Oracle Cloud Infrastructure(以下OCI)のBastionサービスとは、プライベート環境のリソースに対して、パブリック・エンドポイントを経由せずにセキュアに接続できるサービスです。

今回はBastionを使用したSSH接続についてご紹介したいと思います!

事前準備

Bastion作成前に以下の環境が必要となります。
・ VCN
・ プライベート・サブネット
・ プライベートに属するリソース(今回は「コンピュート・インスタンス」を使用)
・ SSH鍵

必要であれば、以下のポリシーも付与をしておきます。
(対象ユーザーがAdministrators権限を有している場合は、以下のポリシーの記述は不要です。)

Allow group SecurityAdmins to manage bastion-family in tenancy
Allow group SecurityAdmins to manage virtual-network-family in tenancy
Allow group SecurityAdmins to read instance-family in tenancy
Allow group SecurityAdmins to read instance-agent-plugins in tenancy
Allow group SecurityAdmins to inspect work-requests in tenancy

Bastionの作成

OCIコンソールにログイン後、左上のハンバーガーメニューからアイデンティティとセキュリティ要塞をそれぞれ選択します。

OCIコンソールでの選択画面

Bastionサービスの一覧が表示され、要塞の作成を選択します。
この時、リージョンとコンパートメントが指定の場所にあるかどうかの確認を行いましょう。
Bastionの作成

以下の項目をそれぞれ入力後、要塞の作成を選択します。

・ 要塞名
・ ターゲット仮想クラウド・ネットワーク
・ ターゲット・サブネット(「プライベート・サブネット」を選択)
・ CIDRブロック許可リスト(今回はIPアドレスの制限を行わないので「0.0.0.0/0」と入力)
・ 最大セッション存続時間(TTL)(オプション)
※30分〜3時間まで任意の時間を設定できます。

作成

作成後、状態がアクティブになったら、作成が完了となります。

セッションの作成

続いて、Bastion内のセッションを作成します。

先ほど作成したBastionの詳細画面に移動し、セッションの作成を選択します。
セッションの作成
セッションの作成時には以下の項目の入力が必須となります。

・ セッション・タイプ(今回は「SSHポート転送セッション」を使用)
・ セッション名
・ ターゲットのIPアドレス or ターゲットのインスタンス(今回は「ターゲットのインスタンス」を選択)
・ コンピュート・インスタンス
・ ポート(SSH接続なので「22」を入力)
・ SSH鍵(「公開鍵」「秘密鍵」両方)

以上の項目をそれぞれ入力後、セッションの作成を選択します。
セッションの作成

作成後、状態がアクティブとなったら、作成が完了となります。

セッションの登録

先ほど作成したセッションの三点リーダーアイコンSSHコマンドのコピーをそれぞれ選択します。

SSHコマンドのコピー

SSHコマンドは下記となりますので、SSH秘密鍵のパスローカルポートをそれぞれ指定の値に変更しておきます。

ssh -i <SSH秘密鍵のパス> -N -L <ローカルポート>:10.0.1.*:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaaured3paa2wwmx6isw3qu6goyn2blbohklqojndhc562xrnt7qiyq@host.bastion.ap-tokyo-1.oci.oraclecloud.com

変更後、ターミナルを新規で立ち上げて上記のコマンドを入力します。
コマンドを入力後、プロンプトが表示されずに何も操作ができない状態となります。
その場合はセッションが登録されて、SSH接続ができる状態となります。

なお接続時に

This private key will be ignored.
Load key "test.key": bad permissions

のようなエラーが出力された場合、秘密鍵の権限によって接続できない状態となりますので、下記の資料を参考に権限の変更をしておきましょう。

SSH接続で"Permission Denied"と表示されたときの対処法

SSH接続

セッションが完了後、新たにターミナルを起動します。

この際に必ずroot権限で入るようにしましょう。

起動後に、下記のコマンドを入力します。

ssh -i <SSH秘密鍵のパス> -p <ローカルポート> opc@127.0.0.1

入力後に、SSH接続を行うかどうかの質問が出力されますので、yesを入力します。

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

以下のメッセージが出力された後に、対象のインスタンスにログインすることができます。

Warning: Permanently added '[localhost]:<ローカルポート>' (ED25519) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket

以上でBastion経由を用いた、簡易的なSSH接続は完成となります。

参考資料

Oracle公式ドキュメント
BastionサービスでパブリックIPを持たないリソースにアクセスする

0
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
0
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?