Microsoft Azure Cloud上のVirtual MachineにSSHでアクセスするにはいくつか方法があります。
Azure Cloud Shell, putty, VS Code の設定方法をメモしました。
1. Azure Cloud Shell
最も手軽なのはブラウザから使用するAzure Cloud Shellです。
AzureのVirtual Machinesの管理画面からVMの起動停止と同じ画面で「接続」をクリックすると画面下部にオープンするコンソールです。
公式Docこちら
Azure Cloud Shell の概要
Linux仮想マシンの作成とSSHキーペアの作成
ここでは下記クイックスタートガイドの様にAzure PotalでLinux仮想マシンを作成して、SSHキーペアも作成した場合を想定します。
クイック スタート: Azure portal で Linux 仮想マシンを作成する
この場合、Azure Cloud ShellのbashでSSHキーペアを作成
ssh-keygen -t rsa -b 2048
~/.ssh ディレクトリに id_rsa と id_rsa.pub ファイルが作成されています。
hogehogea@Azure:~$ ls .ssh
id_rsa id_rsa.pub known_hosts
SSHで接続
Azure Portal の VMの画面で connect ボタンをクリックすると右に「Connect to virtual machine」が開くので
Login using VM local accountに示されたコマンドをコピーしてAzure Cloud ShellにペーストしてSSHを実行すれば接続できます。
ssh tyamazoe @xxx.xxx.xxx.xxx
2. putty
汎用のSSHクライアントソフトです。Azure Cloud Shell で作成した秘密鍵ファイルをダウンロードして*.ppkファイルに変換してから設定します。
id_rsa ファイルをローカルマシンへダウンロード
Azure Cloud Shellの[Upload/Download files]ボタンをクリックして、~/.ssh/id_rsa ファイルをダウンロードします。
puttygen.exe で秘密鍵ファイルを *.ppk に変換する
こちらのサイトからputtygen.exeを入手します。
Download PuTTy
puttygen.exeを起動して
[Conversions] – [Import key] から
先ほどダウンロードしておいた id_rsa ファイルを選択
[Save private key]をクリックして、任意のファイル名で *.ppk ファイルを保存。
puttyに設定
生成したppk
puttyの設定で [Connection] – [ssh] – [Auth] から [Authentication parameters] の
[Private key file for authentication:] に[Browse]ボタンをクリックして、先ほど生成した *.ppk ファイルを指定する。
puttyからSSH接続
これでAuthintificationで、Azure VMのIP addressに対して接続できます。
3. Visual Studio Code から接続
puttyの *.ppkファイルを作成していれば、VS CodeのSSH FS拡張機能を使用してVS CodeからAzure VMへSSH接続し、ファイルをリモート編集することができます。
設定さえすれば、AzureのVM上のファイルをローカルファイルの様に編集可能です。素晴らしい。
SSH FSの設定
Visual Studio Codeの拡張機能から SSH FS をインストールします。
SSH FILE SYSTEMS のペインを右クリックして[Create a SSH Configuration]から設定します。
Name, Host以外に次の項目を設定します。
Username: VMへログインするユーザー名
Private key: 先程puttygenで作成した *.ppkファイルを指定
Passphrase: *.ppk(秘密鍵)のパスフレーズ
設定を保存すれば、右クリックで[Connect As Workspace foler]でAzure VMへ接続されます。
これでAzure VMのファイルもローカルにあるようにVS Codeで編集できます。