Oracle Cloudのインスタンスにコンソール接続します。

先日、Oracle CloudのインスタンスにSSH接続ができなくなりました。CentOSが起動してましたがなにかやらかしてしまい重要なSSH接続ができなくなったことでなにもできなくなりました。
そこで色々と調べてみてコンソール接続というものがあることがわかりました。
本日はこの接続方法を紹介いたします。Windowsでの方法となります。

コンソール接続はインスタンスの詳細にあります。


ここで「コンソール接続の作成」をクリックすると公開キーが必要になることがわかるので用意します。

ここではPuTTY(パティ)というソフトを使用します。パティとはSimon TathamがMIT Licenceで開発公開しているリモートログオンクライアントです。クライアントですが公開キーを作成するツールが付属しているのでそれを使用します。PuTTYgenがそれにあたります。起動して「生成ボタン」をおすことで鍵を作成できます。

この文字列をオラクルクラウドにある「SSHキー」のところに貼り付けます。その際ラジオボタンを「公開キー、ファイルの選択」から「公開キーの貼付け」に変更しておき、コンソール接続の作成をします。


また、秘密鍵の作成もしておき保存しておきます。


コンソール接続で状態がアクティブになっていると接続することができます。


コンパートメント付近にあるボタンをクリックして「Windowsのシリアルコンソール接続のコピー」をクリックしてメモ帳などに貼り付けておきます。それが下記の内容となります。

Start-Job { Echo N | plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.iad.anuwcljtatpqitycvizni2ttcnimhciqfwm4epqeealbaaetcjrefdpwk26a -L 22000:ocid1.instance.oc1.iad.anuwcljtatpqitycvwsxn7mj6d2tzgxoosbr5upg5ml5sztmh5zap6gi3rfq:22 instance-console.us-ashburn-1.oraclecloud.com }; sleep 5; plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -P 22000 localhost -l ocid1.instance.oc1.iad.anuwcljtatpqitycvwsxn7mj6d2tzgxoosbr5upg5ml5sztmh5zap6gi3rfq

ただし、よくみると保存した秘密鍵である.PPKファイルの名前が違うことや、ディレクトリの記述がWindows形式ではないので下記の内容に書き換えます。さらに、plink.exeにパスが通ってないとエラーになります。このファイルはパティのフォルダにあります。ここでは直接このファイルがある場所を指定しました。

Start-Job { Echo N | c:\oracle\plink.exe -i c:\oracle\oracle.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.iad.anuwcljtatpqitycvizni2ttcnimhciqfwm4epqeealbaaetcjrefdpwk26a -L 22000:ocid1.instance.oc1.iad.anuwcljtatpqitycvwsxn7mj6d2tzgxoosbr5upg5ml5sztmh5zap6gi3rfq:22 instance-console.us-ashburn-1.oraclecloud.com }; sleep 5; c:\oracle\plink.exe -i c:\oracle\oracle.ppk -P 22000 localhost -l ocid1.instance.oc1.iad.anuwcljtatpqitycvwsxn7mj6d2tzgxoosbr5upg5ml5sztmh5zap6gi3rfq

この長いコマンドを管理者として実行したPowerShellに入力します。


「Uptate cached Key?」ときかれたら「y」を押します。この状態でインスタンスの再起動ボタンをクリックします。すると下図のように起動の状態が表示されていきます。

実際には障害がでたインスタンスは再起動に時間がかかることがあり、その前にPowerShellによる接続が切れてしまいます。そうなったら再接続をします。実はこれに気づくのに丸1日かかりました。接続が切れた段階で失敗と思っていたのです。
Linuxの端末でコンソール接続をするとPowerShellとは異なる表示となり、CentOSをレスキューモードで起動することができこれによりSSH接続ができない状態を回避することができました。

コメント

タイトルとURLをコピーしました