Computeインスタンスのコンソールへのアクセス
渡部です。これは、(全部俺) Oracle Cloud Infrastructure Advent Calendar 2018の6日目のエントリです。
私が抱いているAWS EC2のへの不満の1つは、VMのコンソールにアクセスする機能が弱いことです。
セキュリティ強化のため、iptablesなどゲストOS側でファイアウォールの設定を変更するケースがありますが、
万が一設定をミスすると、ゲストOSにアクセスできなくなる場合があります。
VMのコンソールにアクセスできれば問題を解決することは容易ですが、
アクセスできないとディスクの付け替えなど面倒な手段に頼らざるを得ません。
OCIにはコンソールにアクセスする方法が2つ用意されています。
- シリアルコンソールアクセス
- VNCコンソールアクセス
ただし、あらかじめ構成が必要です。
手順はマニュアルなどに詳しく説明されていますが、
概要は以下の通りです。
- OCIの管理コンソールで、該当Computeインスタンスに対して、"Console Connections"を作成する
- このとき、sshの公開鍵を登録する
- "Console Connections"の実体は、踏み台サーバ(instance-console.XXX.oraclecloud.com、オラクル管理と思われる)へのssh接続+踏み台設定と思われる
- OCIの管理コンソールから確認できる踏み台サーバへのProxyCommandが指定されたsshコマンドを実行する
- シリアルコンソールアクセスの場合: このsshコマンド実行による接続でコンソールへアクセスできる
- VNCコンソールアクセスの場合: このsshコマンド実行により、ローカルフォワードによるポート転送が有効となる
- (VNCコンソールアクセスの場合) localhost:5900を指定してVNCクライアントを実行する。ローカルフォワードによるポート転送により、ComputeインスタンスのVNCコンソールに接続される
なお、若干細かいですが、コンソールアクセスの注意点は以下の通りです。
- パスワード認証を構成しておく必要があります。(メンテナンスモードなど特殊な起動モードの場合を除く)
- 当然ですが、シリアルコンソールアクセスでログアウトしても、シリアルコンソールのsshセッションは継続します。この場合はsshクライアントを終了する必要があります。
- マニュアルにも記載がありますが、OpenSSLのsshクライアントでは[ENTER]→[~]→[.]キーを押すと、sshクライアントを終了できます(知らなかった!)
https://euske.github.io/openssh-jman/ssh.html
-e エスケープ文字
仮想端末を使うセッションにおけるエスケープ文字を指定します(デフォルトは ~ )。エスケープ文字は行頭に来たときのみ認識されます。エスケープ文字のあとにドット . がきた場合その接続は閉じられ、control-Z がきた場合にはその接続はサスペンドされます。
シリアルコンソール接続時の画面キャプチャ
VNCコンソール接続時の画面キャプチャ
参考