SSH キーを使って公開鍵認証(パスフレーズ)のAzure Virtual Machines(VM)を作成

AzureにSSH キーというサービスがあります。Azure Virtual Machines(Azure VM)を作成する際のSSHキー(鍵ペア)を生成、保管しAzure VM作成時に利用できるサービスになります。

Azure portal で SSH キーを生成して格納する(MS社サイト)

今回はSSH キーのサービスを利用して、パスフレーズ付き秘密鍵を使ってログイン(公開鍵認証)するAzure VM(Cent OS)を作成してみました。

※SSHキーは公開鍵情報を保管するサービスになります。秘密鍵やパスフレーズは個別に保管する必要があります。また今回はユーザ名にデフォルトのazureuserを利用していますが適時変更して下さい。

スポンサーリンク

Azure VM(仮想マシン)作成時に選択できる認証方法

Azure VMは作成時に、管理者アカウントの認証方式(ログイン方法)を、パスワードかSSH公開キーか選択する事が出来ます。

認証の種類 SSH公開キーのソース 説明
パスワード認証 OSログイン時にユーザー名とパスワードで認証を行う。
SSHキー認証 新しいキーの組の生成 Azure VM作成時にキーの生成する。OSログイン時に利用する秘密鍵はAzure VM作成と同時に作成される。
Azure に格納されている既存のキーを使用する SSHキーのサービスに登録されているSSH鍵(SSHキー)を利用する。
既存の公開キーを使用 事前に生成(TeraTerm等)しておいたSSHキーを利用する。Azure VM作成時には事前に作成しておいた公開キーを登録する。

Azure VM作成画面

既存の公開キー(事前に作成したSSHキー)を利用した場合については下記を参照ください。

SSHキーのサービスを使ってみた(Azureでキー生成する)

AzureのSSHキーで鍵ペアを生成してから、Azure VMを作成してみます。

Azure SSHキーを利用してキー生成

最初にAzure PortalでSSHキー生成します。

作成手順

SSHキーのサービスで新規をクリックします。

SSHキーの作成が表示されますので、設定を行います。

  • リソースグループ名
  • キーの組名
  • SSH公開キーのソース

今回はAzureで新規に作成したキーを利用する為、新しいキーの組の生成を選択します。

 

確認画面が表示されますので、作成をクリックします。

新しいキーの組の生成が表示されます。秘密キーのダウンロードを行います。なお秘密鍵のファイル名はキーの組名.pem(今回の場合はSSH-Key.pem)になります。

【注意】秘密キーはこのタイミングでしかダウンロードできません。SSHキーのサービスでは秘密キーのダウンロードは出来ません。

作成が完了するとSSHキーが作成されています。

公開鍵はファイルではなくAzure Portalで公開鍵の文字列を確認する形になります。

SSHキーに保管された公開鍵を利用してAuzre VMを構築

先ほど生成したSSHキーを利用してAzure VMを構築します。SSHキーに登録された公開鍵がAzure VMに登録されます。

作成手順

Azure VM作成時に以下の通り選択します。

  • SSH公開キーのソース
    • Azureに格納されている既存のキーを使用する
  • 格納されたキー
    • SSH-Key(先ほど生成したSSHキーを指定)

後は通常通りVM作成を実施します。

 

TeraTermを利用して作成したAzure VMにログインします。

ユーザー名はazureuser(AzureVM作成時に指定したユーザー名)とします。パスフレーズは空白のままとします。

RSA/DSA/ECDSA/ED25519鍵を使うにチェックを入れます。秘密鍵(SSHキー生成時にダウンロードしたファイル)のパスを指定します。

OKをクリックします。

これで公開鍵認証でOSへログイン出来ます。

生成したパスフレーズ付き鍵をSSHキーに登録してAzure VMを作成

秘密鍵(パスフレーズ無し)を持っていれば誰でもログイン出来てしまいます。これはセキュリティ的にあまり宜しくなかったりします。そこで秘密鍵にパスフレーズをつける事で鍵+パスワードでの認証が出来ます。TeraTermを利用してパスフレーズ付きの鍵を生成、その鍵をSSHキーに登録する事で、パスフレーズ鍵認証でログインするAzure VMを作成してみます。

TeraTermを利用してパスフレーズ付き鍵ペアを生成

まず最初にTeraTermを利用してパスフレーズ付きの鍵ペアを生成します。

事前にこちらのサイト等からTeraTermをダウンロードしてインストール願います。

作成手順

TeraTermで設定にあるSSH鍵生成を選択します。

鍵生成が表示されます。鍵の種類はRSA、ビット数は4096にします。

生成をクリックします。

 

鍵が生成されたらパスフレーズの入力を行います。コメントは適時入力します。

公開鍵の保存した後に、秘密鍵の保存を行います。

デフォルトでは公開鍵はid_rsa.pub、秘密鍵はid_rsaというファイル名になります。

生成した公開鍵をSSHキーに登録

生成した鍵のうち公開鍵の情報をSSHキーに登録します。

作成手順

SSHキーのサービスで新規をクリックします。

SSHキーの作成が表示されますので、設定を行います。

  • リソースグループ名
  • キーの組名(今回はSSH-Key-Passとしています。)
  • SSH公開キーのソース

SSH公開キーのソースは既存の公開キーをアップロードを選択します。

キーのアップロードが表示されます。作成した公開鍵をテキストエディタで開き、内容をすべてコピペします。

確認および作成をクリックします。

確認画面が表示されますので、作成をクリックします。

※パスフレーズは秘密鍵で利用するのでSSHキーに公開鍵を登録する際には利用しません。

※事前に作成したものを利用しているので秘密鍵のダウンロードは表示されません。

SSHキーに保管された公開鍵を利用してAuzre VMを構築(パスフレーズ付き)

SSHキーに保管された公開鍵を利用してAzure VMを作成します。

作成手順

Azure VM作成時に以下の通り選択します。

  • SSH公開キーのソース
    • Azureに格納されている既存のキーを使用する
  • 格納されたキー
    • SSH-Key-Pass(先ほどパスフレーズ付きで作成したSSHキーを指定)

後は通常通りVM作成を実施します。

 

TeraTermを利用して作成したAzure VMにログインします。

ユーザー名はazureuser(AzureVM作成時に指定したユーザー名)とします。パスフレーズはTeraTermで鍵作成時に指定したパスフレーズを入力します。

RSA/DSA/ECDSA/ED25519鍵を使うにチェックを入れます。秘密鍵(SSHキー作成時にダウンロードしたファイル)のパスを指定します。

OKをクリックします。

これでパスフレーズを使った公開鍵認証でOSへログイン出来ます。

 

これでパスフレーズ付きの鍵認証でOSへログイン出来ます。

 

Azure VMのNSG関連の設定についてはこちら。

Cent OSのRootアカウント初期パスワードについてはこちら。

実はAzure VM作成時にキー生成してもSSHキーに保管される

実はAzure VM作成時に新しいキーの組の生成で作成した場合、SSHキーがキーの組名で指定した名前で作成されます。

作成手順

Azure VM作成時に、新しいキーの組の生成を指定します。キーの組名にtest-vmと設定します。

この場合Azure VM確認画面で作成をクリックすると新しいキーの組の生成というメッセージが表示されます。秘密キーのダウンロードとリソースの作成をクリックすると、秘密キーがダウンロードされます。

ダウンロードされるファイル名は、キーの組名.pem(今回の場合はtest-vm.pem)

公開鍵はVMの中にのみというわけではなく、実は自動でSSHキーが作成されています。

その為同じ内容を使いまわすといった事も可能です。

※セキュリティ的にはお勧めはしません。