OracleCloud でインスタンスにコンソールアクセスしてみた

# はじめに

Oracle Cloud Infrastructure のコンピュートインスタンスには、コンソール接続する方法が用意されています。OSインスタンスの障害や設定ミスなどで、SSHに接続できない場合、コンソール接続を行い対処を行うことが出来ます。

今回の記事では、コンソール接続する方法を確認していきます。

![001.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/b071d396-d6db-1149-e6fe-86d8f3eef9b2.gif)



# コンソール接続方法

## コンソール接続用のユーザを作成

Linuxのインスタンスなどで、コンソール接続をするには、パスワード認証を有効にしておく必要があります。しかし、パスワード認証を行う方法と、公開鍵暗号化方式でアクセスする方式を比べると、パスワード認証の方法は若干セキュリティが低下する懸念があります。
そこで、SSHによる接続は、パスワード認証を拒否する設定を行うと、より安全に運用出来るといえるでしょう。

OCIで作成した Linux マシンは、基本的にはパスワード認証は拒否されているようです。が、改めて確認すると良いでしょう。

`/etc/ssh/sshd_config` の `PasswordAuthentication` の設定値が該当する設定となります。

```
PasswordAuthentication no　←no の設定になっていると、SSHでパスワード認証は許可されません
```



この状態で、パスワード認証とsudoを有効にしたユーザを作成することで、SSHはできないコンソール接続用のユーザを作成することができます。以下、Ubuntu18.04でユーザを作成する例です

```
sudo groupadd -g 1100 consoleg
yes 'secretsecret' | sudo adduser --uid 1100 --gid 1100 --gecos "" console
```



作成したユーザで sudo が出来るように、sudo グループに所属します

```
sudo usermod -a -G sudo console
```



## コンソール接続用のコネクション作成

インスタンスのコンソールに接続するためには、Oracle側で準備しているコンソール接続用の踏み台サーバに接続する方法になります。インスタンスごとに Console Connection を作成して、コネクションを使用して接続します。

インスタンスの詳細画面で、Console Connection を作成します。作成画面で公開鍵の入力が求められるため、適宜入力します。なお、インスタンスへのSSH接続時の公開鍵とは別のものを指定することができます。同じものでもOKです。



![002.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/afb8051d-c4da-7d3e-c177-f3d4f7506bd2.gif)


次の画面が正常に Console Connection が作成された状態です。

![003.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/3cb91c44-4b99-3980-32ac-5eaec833bf90.gif)



## 方法1. SSHによるシリアルコンソール接続

コンソール接続のメニューから、「Connect with SSH」を選択します

![004.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/c4ff004d-e89c-5175-37cf-798b6fd0225c.gif)



表示されたメニューから、プラットフォームに合わせた接続用のコマンドを生成して、コピーします。
なお、自分の場合はWindowsから接続していますが、WSL(Windows Subsystem for Linux)と呼ばれるLinux環境を使用して接続を行っているため、`LINUX/MAC OC` を選択しています。

![005.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/d84c4076-6b15-095e-e02d-a4197cf8dea1.gif)



Oracleによる踏み台サーバ経由で、OCI上のインスタンスへSerial Console接続を行うことができます。loginプロンプトで、作成したユーザ名とパスワードを入力することでログインが可能です。

![006.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/7dc2d83c-481e-e97a-2250-47e1ede1247c.gif)



## 方法2. VNCによるコンソール接続

VNC(Virtual Network Computing)と呼ばれるソフトウェアを使うことで、ネットワーク上のインスタンスのコンソール画面を遠隔で開くことができます。様々なソフトウェアがありますが、じぶんはVNC Connect を使用してコンソール接続を行っています。適宜好きなものを導入してください。

VNC Connect 
<https://www.realvnc.com/en/connect/download/viewer/>



コンソール接続のメニューから、「Connect with VNC」を選択します。

![007.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/68641701-34c3-de29-c631-0d73784cf83b.gif)



生成されたSSHコマンドをコピーします。このSSHコマンドは、Oracle側で準備した踏み台サーバ経由でSSHポートフォワードを実施しています。ローカルPCのlocalhost:5900へ接続することで、OCIのコンピュートインスタンスへ接続することができます。

![008.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/527597b2-ab47-1ac2-3376-1307d414ee26.gif)



WSLから、コピーしたコマンドを使用してポートフォワードを行います。

![009.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/6ade8f0b-269e-df00-ba7c-61ac960efcb0.gif)



VNC Client から、localhost:5900 へ接続します

![010.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/954f5f30-87a0-194b-07cc-1226595ef7fa.gif)



VNC Viewer が開き、コンソールを操作することができます。

![001.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/9b5e97dc-8e86-9e76-ad6d-04d904ac51f5.gif)



# 参考URL

<https://docs.cloud.oracle.com/iaas/Content/Compute/References/serialconsole.htm>