はじめに
Oracle Cloud Infrastructure のコンピュートインスタンスには、コンソール接続する方法が用意されています。OSインスタンスの障害や設定ミスなどで、SSHに接続できない場合、コンソール接続を行い対処を行うことが出来ます。
今回の記事では、コンソール接続する方法を確認していきます。
コンソール接続方法
コンソール接続用のユーザを作成
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です。
次の画面が正常に Console Connection が作成された状態です。
方法1. SSHによるシリアルコンソール接続
コンソール接続のメニューから、「Connect with SSH」を選択します
表示されたメニューから、プラットフォームに合わせた接続用のコマンドを生成して、コピーします。
なお、自分の場合はWindowsから接続していますが、WSL(Windows Subsystem for Linux)と呼ばれるLinux環境を使用して接続を行っているため、LINUX/MAC OC
を選択しています。
Oracleによる踏み台サーバ経由で、OCI上のインスタンスへSerial Console接続を行うことができます。loginプロンプトで、作成したユーザ名とパスワードを入力することでログインが可能です。
方法2. VNCによるコンソール接続
VNC(Virtual Network Computing)と呼ばれるソフトウェアを使うことで、ネットワーク上のインスタンスのコンソール画面を遠隔で開くことができます。様々なソフトウェアがありますが、じぶんはVNC Connect を使用してコンソール接続を行っています。適宜好きなものを導入してください。
VNC Connect
https://www.realvnc.com/en/connect/download/viewer/
コンソール接続のメニューから、「Connect with VNC」を選択します。
生成されたSSHコマンドをコピーします。このSSHコマンドは、Oracle側で準備した踏み台サーバ経由でSSHポートフォワードを実施しています。ローカルPCのlocalhost:5900へ接続することで、OCIのコンピュートインスタンスへ接続することができます。
WSLから、コピーしたコマンドを使用してポートフォワードを行います。
VNC Client から、localhost:5900 へ接続します
VNC Viewer が開き、コンソールを操作することができます。
参考URL
https://docs.cloud.oracle.com/iaas/Content/Compute/References/serialconsole.htm