LoginSignup
2
2

More than 3 years have passed since last update.

Azure AD認証を使用して、Azure仮想マシン(Linux)にSSH接続する

Last updated at Posted at 2019-05-23

はじめに

Azure仮想マシンにはSSH接続用の公開鍵は一つしか設定できないため、複数マシンからの接続は困難です。
(公開鍵の再設定はできるが、毎回行うのは面倒)
Azure AD認証を使用することで、環境を選ばず接続することができます。

用意するもの

  • Azure仮想マシン(Linux)

手順

  1. 拡張機能をインストールする
  2. ロールを割り当てる
  3. SSH接続を行う

1. 拡張機能をインストールする

Cloud Shellを開きます。

cloudshell

リソースグループと仮想マシンを指定し、Azure ADでの接続に必要な拡張機能をインストールします。

  • リソースグループ:myResourceGroup
  • 仮想マシン:myVM
$ az vm extension set \
    --publisher Microsoft.Azure.ActiveDirectory.LinuxSSH \
    --name AADLoginForLinux \
    --resource-group myResourceGroup \
    --vm-name myVM

2. ロールを割り当てる

Azureアカウントに仮想マシン接続用のロールを割り当てます。
接続に関するロールは以下の二つです。

  • Virtual Machine Administrator Login(管理者権限)
  • Virtual Machine User Login(ユーザー権限)
# アカウント名、仮想マシンIDを変数に設定
$ username=$(az account show --query user.name --output tsv)
$ vm=$(az vm show --resource-group myResourceGroup --name myVM --query id -o tsv)

# ロールの割り当て
$ az role assignment create \
    --role "Virtual Machine Administrator Login" \
    --assignee $username \
    --scope $vm

ロールの割り当てはポータル上でも行えます。

image.png

3. SSH接続を行う

ポータル上で仮想マシンのリソースを表示し、接続を選択します。

image.png

Azure ADでの接続用コマンドが表示されるので、コピーしてCLIでコマンドを実行します。

image.png

~$ ssh azureuser@azure.com@13.71.141.35
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GZ3KVMCHK to authenticate. Press ENTER when ready.

表示されたURL(https://microsoft.com/devicelogin)にブラウザでアクセスし、コードを入力します。

image.png

指定したアカウントでサインインし、CLIに戻ってENTERを押せば接続完了です。

新規に仮想マシンを作成する場合(ポータル)

「Ubuntu Server」のマシンでは、Azure ADで接続する機能(プレビュー版)を選択できます。
この機能を有効にすることで上記手順1が不要となり、ロールの割り当てのみ行うことでSSH接続が可能になります。

image.png

補足

仮想マシンはデフォルトでは全てのポートが閉じているため、SSHのポート(22)を開放する必要があります。

image.png

参考サイト

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2