【AzureVM】パスワードユーザでも公開鍵認証を設定!AzurePortalで簡単GUI操作

こんにちはますのです。
AzureのVirtual Machinesから仮想マシンを作成する際にパスワードでログインする設定を行っていました。
その後に「やっぱり鍵認証がイイヨネ」という話になってしまい、「アァ…。仮想マシン作り直さないとダメかしら」と思ったのです。

もしくは以前手順に落とした鍵認証の登録手順を試していかないとダメか…。と考えていました。
【Linux】SSH公開鍵認証でサーバへ接続するための設定方法

調べてみるとGUI上からポチポチするだけで鍵認証を設定出来るようでしたのでメモを残していきたいと思います。

AzurePortalのGUI操作で鍵認証設定の登録が出来ます

操作は簡単、この2つだけです。

  1. 「SSHキー」で秘密鍵と公開鍵を作成する(Azureポータル上)
  2. 「Virtual Machines」から対象の仮想マシン&ユーザを指定してキーを貼り付け(Azureポータル上)

パスワード認証をさせないように変更したい場合は「/etc/ssh/sshd_config」の「PasswordAuthentication」を「no」に変更しますが、ここは任意となります。

AzurePortal「SSHキー」でSSHキーペアを作成する

先ずはAzureポータルへアクセスし、サービス「SSHキー」を選択します。

  • 検索:SSHと入力>「SSHキー」を選択
  • SSHキー画面:「追加」をクリック
  • 任意のリソースグループ、キーの組名を入力>「確認および作成」をクリック>「作成」をクリック
  • 「作成」をクリック>「秘密キーのダウンロードとリソースの作成」をクリック

    ※ダウンロードし忘れると、SSH接続する際に必要な秘密鍵を入手することが出来なくなります。
    ダウンロードし忘れた場合は再作成で対応する必要があるので注意です。
  • SSH接続時に必要な秘密鍵(pemファイル)がダウンロードされて完了となります。

ユーザに登録する「公開キー」をコピーする

公開キーをリセットする際に必要となるテキストを控えます。
先ほど作成したSSHキーのページを開くだけとなります。

「SSHキー」>作成したSSHキーをクリック>「公開キー」のssh-rsaから始まるテキストをコピーします。

コピーしたテキストはこのあと仮想マシンに貼り付けるので控えておきましょう。

仮想マシン上の対象ユーザに公開鍵を登録する

SSH公開キーの登録も簡単です。
AzureポータルからVirtual Machinesを開き、対象の仮想マシンを選択します。

  • パスワードのリセットを選択
  • 以下をそれぞれ設定
    ユーザ名:SSH公開キーを設定したいユーザ名を入力
     SSH公開キー:先ほどコピーした「ssh-rsa」から始まる内容を貼り付け
  • 「更新」をクリック

更新が完了すれば設定完了となります。
Tera Termなどで秘密鍵でのログインが可能であることが確認できます。

余談1:「SSH公開キーのリセット」は「~.ssh/authorized_keys」ファイルに追記する動きとなる

ここからは余談です。
「SSH公開キーのリセット」を行うと以前の鍵情報が消えて、新規で登録した鍵のみが使えると思っていました。
動作を見てみるとどうやら上書きではなく、SSH鍵認証ファイルの「~.ssh/authorized_keys」へ追記される動きとなるようです。

「SSH公開キーのリセット」を2回実施したユーザの「~.ssh/authorized_keys」を見てみます。
異なる鍵が2つ登録されていることが分かりますね。秘密鍵でのログインも新旧どちらも可能であることが分かりました。

「pemファイルを紛失」「pemファイルの漏洩」等で変更する場合は、考慮が必要のようです。
「~.ssh/authorized_keys」から旧鍵の情報も消さないと漏洩した鍵でそのまま入れることが起きてしまいそうと感じました。

余談2:鍵認証のみ有効とする場合は「/etc/ssh/sshd_config」ファイルを変更する

「/etc/ssh/sshd_config」の細かいことは別記事確認ください。

Linux(CentOS)の初期設定【root/ログイン認証変更】

「/etc/ssh/sshd_config」の変更はログインが出来なくなる可能性があります。
作業時は以下のことを必ずしましょう。
・変更をしているセッション(TeraTerm等のウィンドウ)は必ず残して作業する。消さない。
・「/etc/ssh/sshd_config」の変更前データを残す
sudo vi /etc/ssh/sshd_config

///以下のようにPasswordAuthentication「no」を有効化する
#PasswordAuthentication yes
PasswordAuthentication no

変更完了後にsshdサービスを再起動します。

sudo systemctl restart sshd.service

TeraTerm等を新規で立ち上げ、パスワードでのログインが不可、鍵認証でのログインが可能であることを確認出来たら作業完了となります。

Azureだとこんなに簡単に鍵認証の設定を登録できるのかとびっくりしたのです。AWSでは手動で作ったりしてたのですが、もしかしてAWSでも同じ機能あるのでしょうか。

なお、SSHキーのリセットを行っても鍵認証が通らない…。と実は苦戦したところなのでした。
原因は「/home/azureuser/」の所有者がrootになっていたのです。そりゃsshキーログイン出来ないデスヨネェ。
所有者を「chown azureuser:azureuser /home/azureuser」と設定して無事解決出来たので一安心であります。

誤操作含めて変な設定になっていることには気を付けたい所存であります。

最新情報をチェックしよう!