[Oracle Cloud]コンソール接続(Windows)

Oracle Cloud

概要

Oracle Cloud に作成した 仮想マシン(インスタンス)にOS非依存でもリモートできるようにする。コンソール接続できるようにする。

Git Bash を利用した方法と,PuTTY を利用した方法の2つがある。

手順

1.接続元PC側の準備(Windows)

必要なアプリケーション

以下をインストールする

■Git か Putty (Putty の方が使い勝手はよさそう)

Download PuTTY - a free SSH and telnet client for Windows

■RealVNC (他のVNCでも使えるかもしれない)

公開鍵の作成 (GitもPuTTyどちらを使用するにしても)

接続元PCの公開鍵をOCIにて登録する必要があります。なので作成しておきます。PowerShellにて ssh-keygen を実行する

どこに保存しますか? と聞かれるので そのまま Enter。フォルダは変えないc:\users\xxxxx/.ssh/id_rsa となっていればそのまま Enter。id_rsa.pub が必要なファイルであり,c:\users\xxxxx\.ssh フォルダに保存されていればいい。フォルダがなければ作成。(別のフォルダに出力すると後述のGit Bashでうまく動作しない)

重要
作成されるファイルは2つですが
id_rsa ・・・・秘密鍵(このファイルを持っていればどの端末からでも接続できので,厳重管理が必要
id_rsa.pub・・・公開鍵(次の手順で,サーバーインスタンスに登録させます)

PPKファイルの作成 (PuTTY利用なら)

スタートメニューより PuTTY Key Generator を起動

Conversions – Import Key

前述で作成している “C:\Users\xxxxxx\.ssh\id_rsa”

Save private key

oci.ppk (任意)命名して保存

2.サーバー側の準備

OCI WEBサイトに接続して
コンピュート – インスタンス – 該当のインスタンス名をクリック。
インスタンスの詳細 画面が表示される。
その画面 左下 (結構下なのでスクロール)にある「コンソール接続」

「ローカル接続の作成」,前述の手順で作成した 公開鍵 id_rsa.pub を 「公開キー・ファイルのアップロード)」する

ちなみにコンソール接続は 1つしか登録できない

3.SSH接続とVNC待機

Git Bash による接続編

先程作成したコンソール接続の右端にあるメニューから,「Linux/MacのVNC接続のコピー」をクリック。クリップボードにコピーされる。 Windowsではないんです,なぜか

Git Bash を実行

クライアントPCのスタートメニューから Git Bash を実行
黒い画面が表示されて入力待ちとなる

そこに 前述の手順でコピーしている 接続情報の文字列を貼り付ける。Enter

こんな感じでEnter押すと 止まったような画面になる。

初回接続時は,Are you sure you want to continue connecting?
と尋ねられるので,yes と入力

この黒い画面は消さずにおいておく。OCIとSSH通信中で VNC接続待ちにしている状態

PuTTY(PowerShell)での接続編

OCIサイトのコンソール接続の右端にあるメニューから「Windows VNC接続のコピー」をクリック。クリップボードにコピーされる。

メモ帳を起動して貼り付ける

$env:homedrive$env:homepath\oci\console.ppk という文字列が2か所あるので,前述で保存していた OCI.PPK ファイルのフルパス名に置き換える。

例)$env:homedrive$env:homepath\oci\console.ppk → ”D:\temp\OCI.ppk”

それか,ppkファイルと同一フォルダに ps1ファイルおいて相対パスとするなら

[string] $ppkfile = $PSScriptRoot+”\oci.ppk”
echo $ppkfile

Start-Job { Echo N | plink.exe -i $using:ppkfile -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.ap-xxxxxxxxx -L 5905:ocid1.instance.oc1.ap-xxxxxxxxxxxxxxxxxxxxxx:5905 instance-console.ap-xxxxxx.oraclecloud.com }; sleep 5; plink.exe -i $ppkfile -N -L 5900:localhost:5900 -P 5905 localhost -l ocid1.instance.oc1.ap-xxxxxxxxxxxxxxxxxx

メモ帳のファイルを remote.ps1 として保存

remote.ps1 を Power Shell で実行する

こんな画面になったら enterkey を押す(画面は残る)VNC待機状態となる

VNC ビューワーで localhost に接続 (Git Bash , PuTTY 共通)

接続先は localhost です。サーバー名とかOCIのアドレスではありません。
(localhost:5900 という入力にする必要もあるかもしれません)

起動時の UEFI ロゴが見れたりします。OS起動中の状況も見れます
もちろん リモート操作もできます。マウスもキーボードもOK

終了

VNCはClose
GitBash または PowerShellを閉じれば完了です

論考

○コンソール接続登録は1つの公開鍵だけでした。複数の端末から接続できるようにしておくには対応する秘密鍵を配布することで対応できるかもしれません。

○ssh-keygen による鍵作成ですが,実行するたびに変わるようで,間違ってクライアントPCで実行して秘密鍵を上書きしてしまった場合は,OCIにてコンソール接続を一旦削除し新しい公開鍵を登録し直す必要がありました。

○クライアントPCにすでにVNCサーバーが稼働している場合は,Git Bashに貼り付ける文字列内にある 5900 ポート番号を 別のものに変更しないとだめでしょう。そして VNCビューワーからの接続は localhost:自分で決めた番号 という接続にあるでしょう。

〇”C:\Users\xxxxx\.ssh\known_hosts” に履歴が残っているので場合によってはファイルを削除しないと接続できないこともある

〇PuTTY方式でしている場合,PPKファイルを作成した時のPuTTYバージョンがあまりにも違いすぎると接続できない。PPKファイルをダブルクリックしてPuTTYに読み込ませてみるとわかる。new too みたいなメッセージが出る場合は,PuTTYを入れなおすかPPKファイルの作り直しをする。

プロパティ

Oracle CLud
Windows Server 2019
Windows10
Git-2.27.0-64-bit

コメント

スポンサーリンク
タイトルとURLをコピーしました