【OCI】プライベートサブネットのインスタンスへコンソール接続する

OCIへコンソール接続をする。 ITエンジニア(インフラ)
スポンサーリンク

(OCI)のインスタンスへ、OCIの「コンソール接続」機能を使用したログイン方法について記載していきます。

コンソール接続を使用する事で、「プライベートサブネット内にあるインスタンス」へも、
パブリックサブネットを介さずにアクセスする事が可能です。

また、コンソール接続のする際は、「opc」ユーザーのパスワード設定が必須となるため、
パスワード設定がされていない状態では接続できません。

しかし、手順を踏むことで「opc」ユーザーにパスワードの設定をしていない場合でも、パスワード設定を投入する事が可能です。

この記事では、下記について検証と手順を記載しています。

▼この記事に記載していること

①OCIコンソールから、Cloud Shell接続を起動してコンソール接続をする
②OCIコンソールからCloud Shell接続からopcユーザーにパスワードを設定させる
③コンソール接続機能を使って、Windows端末からVNC接続をする


スポンサーリンク

やりたい事:プライベートサブネット内のインスタンスへアクセスをしたい

下記、OCIのイメージ図です。
シンプルなVCNとパブリックサブネット、プライベートサブネットを作成しておきます。

プライベートサブネットのインスタンス「test-pvOEL-01」にアクセスするには、パブリックサブネットのインスタンス(パブリックIP)へアクセスをし、「test-bastionOEL」サーバ経由でアクセスする経路:①を通る必要があります。

パブリックサブネットを経由しない経路:②では通常、プライベートサブネットへはアクセスできません。

そこで、OCIの「コンソール接続」の機能を使用します。

※本記事は、「Oracle-Linux-7.9-2022.02.25-0」プラットフォームイメージを使用したインスタンスで動作検証をしています。

スポンサーリンク

コンソール接続を使用してプライベートサブネットへ直接アクセスする

OCIインスタンスの「コンソール接続」機能を使用し、プライベートサブネットのインスタンス「test-pvOEL-01」へ直接※アクセスをします。

※技術的にはOralcle内部のコンソールサーバーを経由しているようです。詳細は下記ドキュメントをご確認下さい。

インスタンス・コンソール接続を使用したインスタンスのトラブルシューティング
コンソール接続を使用して、正常に動作していないインスタンスをリモートからトラブルシューティングします。

スポンサーリンク

Cloud Shell接続を起動してコンソール接続をする

実際に、コンソール接続を試みてみます。

対象のインスタンスから「コンソール接続」をクリックし、「Cloud Shell接続の起動」をクリックします。


Cloud Shellによるコンソール接続が開きました。

パスワード設定をしていないとコンソール接続ができない

Cloud Shellにより、簡単にコンソール接続が開きました。

しかし、ここで一つ注意点があります。
インスタンスへのログインには、「opc」ユーザーにパスワード設定をしていないとログインができないという事です。

通常、OCIインスタンスへのログイン方式は、「鍵認証」のみの場合も多く、パスワード設定がされていないケースもあると思います。
この状態だと、コンソール接続ができてもログインができない状態となります。

しかし、調べてみると抜け道がありました。

レスキューモードからパスワード変更をし、Cloudshellでインスタンスへログインする手順

レスキューモードで起動し、パスワードを無理やり設定する方法があるようでしたので、やってみました。

Cloudshell上でレスキューモードの起動

まず、Cloud Shellを起動した状態で、インスタンスを再起動します。




すると、ブートメニューが立ち上がってくるので、 キーボードで一番上の「Rescue」を選択し、「e」を押下します。


ブートエントリへbash起動コマンドの挿入&再起動

すると、ブートエントリが表示されます。



linuxefi・・から始まる行の一番最後に、下記コマンドを追加します。

init=/bin/bash

※viモードと違い、挿入に「i」を押下する必要はありません。記述を間違えた場合は、ESCを押して離脱し、もう一度やり直しましょう。

追加したら、「CTRL+X」を押下し、再起動します。

Bashプロンプトでパスワード変更関連コマンドを投入

Bashプロンプトが表示されたら、下記コマンドを押下します。

/usr/sbin/load_policy -i
/bin/mount -o remount, rw /
sudo passwd opc




opcユーザーに設定するパスワードを聞かれますので、2回パスワードを入力します。



successfullyとなれば設定完了です。
下記コマンドで再起動をします。

sudo reboot -f




再起動されたら、opcユーザで先ほど設定したパスワードでログインをします。
無事ログインができれば完了です。

コンソール接続機能を使って、VNC接続をする手順

CUIベースの操作であれば、Cloud Shellによるログインでも十分かと思いますが、

GUI接続を行いたい場合も、「コンソール接続」機能を使ってログインが可能です。

※ログインの際、「opc」ユーザパスワードは上記と同様に必須となります。
パスワードが設定されていない場合は、上記の手順によりパスワード設定が完了できれば接続可能です。

実際に「コンソール接続」機能を使用したGUI接続を検証していきます。

検証の前提条件,使用ターミナルソフト等

今回の検証に伴い、事前に設定を行った前提条件等を記載します。

<前提条件>
・インスタンスのイメージ:Oracle-Linux-7.9-2022.02.25-0

【インスタンスの設定】
デフォルトから変更した点は下記の2点のみ。

①GUIモードに必要なパッケージ群のインストール
yum groupinstall graphical-server-enviroment

②起動モードのデフォルトを「GUIモード」に変更
systemctl set-default graphical.target

ターミナルソフトには、mobaxtermを使用します。

mobaxtermのWEBサイトより「Download」「Home Edition」でフリー版をダウンロードしてきましょう。

mobaxtermの起動、鍵配置ディレクトリの確認

mobaxtermをインストールしたら立ち上げます。「Start local terminal」をクリックします。


ローカルターミナルが起動します。この後、ログインに必要な鍵ファイルを配置しますので、適当なディレクトリに移動します。



場所はどこでもいいんですが、すぐ上の階層が「MyDocuments」でしたので、「MyDocuments」にcdしています。
Linuxと同様のコマンドでカレントディレクトリ変更、ファイルの確認をしていきます。

Windowsのエクスプローラー側の「ドキュメント」直下のファイルが、ターミナルソフトでも見えていることを確認します。
※上図でいう「test」ファイルや「id_rsa」ファイルです、

この状態で、ディレクトリの移動準備OKです。


OCIでコンソール接続の作成、SSHキーのダウンロードと配置


OCIのコンピュート>コンソール接続>から、「コンソール接続の作成」をクリックし、「秘密キーの保存」をクリックして鍵ファイルをダウンロードします。

鍵ファイルをダウンロードしたら、「コンソール接続の作成」をクリックして作成します。


ダウンロードした鍵ファイルを、先ほどのドキュメントディレクトリに配置します。今回は「id_rsa」というファイル名に鍵ファイルを変更しました。

VNC接続用のコマンドをOCIのコンソール接続からコピーし、コマンドを変更する

コンソール接続が作成されたら、右側の「…」をクリックし、「Linux/MacのVNC接続のコピー」を押し、コマンドをコピーします。

コピーしてきたコマンドの前半部分を下記の通りに変更します。

コマンドの前半部分を変更する

ssh -o ProxyCommand='ssh -W %h:%p -p 443
↓
ssh -i ./id_rsa -o ProxyCommand='ssh -i ./id_rsa -W %h:%p -p 443

mobaxtermターミナル上で、取得&変更したコマンドを投下し、接続の確立

接続コマンドを投下している様子、OCIDにはマスクをかけています。

コマンドを変更したら、mobaxtermターミナルに投下していきます。
先程配置した鍵ファイルにアクセスしますので、ターミナルは「MyDocuments」にいる状態で実行しています。

エラーメッセージが特に出力されなければ接続OKですので、VNC接続に移ります。

mobaxtermでVNC接続

接続が確立されたら、mobaxterm左上の「Session」をクリックします。



「VNC」をクリックし、「localhost」Port:5900 でOKを押下します。



この時点でパスワードを聞かれますが、何も入れずにそのまま「OK」を押下します。

保存するかと聞かれますが、そもそも何も入れていませんので、「No」でいいでしょう。



するとGUIのログイン画面が表示されます。「OPC」ユーザーのログインパスワードを入力します。


無事にログインができました。

CUI接続も同様の手順で可能


同様の手順で、コンソール接続時のコマンドを「シリアル・コンソール接続のコピー」を行えば、
ターミナルソフトからCUI接続も可能です。

まとめ

この記事では、OCIの「コンソール接続」を使った機能について検証しました。

・OCIコンソールからCloudshellを使用すれば、ブラウザからCUIベースでの接続が可能
(プライベートサブネットでも可能)
・コンソール接続には、opcユーザのパスワード設定が必要
・パスワード設定がされていない場合は、Cloudshellからパスワードを強制変更する事が可能
・コンソール接続機能を使用して、VNC&ターミナルを使ったCUI接続も可能

・インスタンスのログイン設定(sshd_config)はデフォルトから変更していないため、パスワード認証等はno の状態

OCI関連の記事は、下記も確認してみて下さい。