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キー)を利用した場合については下記を参照ください。

追加ユーザーについてはAzure Active Directoryのユーザーで認証させることも可能です。

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キーが作成されています。

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

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