Azure portal 等から仮想マシンの名前とリソースグループ名をコピーしておき Azure CLI のコンテナで以下のコマンドを実行。
az ssh vm -n <vmname> -g <rgname>
なお、「仮想マシンのユーザーログイン」ロールだとMicrosoft.Network/networkInterfaces/read
の権限でエラーとなることがあった(2021-06-13 時点)。現在は発生しないもよう。エラーになったのは勘違いの可能性が高いが念のため。
OpenSSH 証明書用に設定をエクスポートできるが、証明書の有効期間が 1 時間程度なので、どちらかと言うと短期間の証明書発行に近いイメージ。
az ssh config --file ~/.ssh/config -n <vname> -g <rgname>
等で設定が ~/.ssh/config
へ追加される~/.ssh/config
の内容を確認し ssh <addr>
などで接続する有効期間は以下のように確認できる。
$ ssh-keygen -L -f /tmp/aadsshcertXXXXXXXX/id_rsa.pub-aadcert.pub
Type: ssh-rsa-cert-v01@openssh.com user certificate
Public key:
snip...
Valid: from 2021-06-18T07:56:15 to 2021-06-18T09:01:15
エクスポートを行ってもホスト認証で証明書が使われるようには設定されない。VM 側の /etc/ssh/ssd_config
等を確認した感じでは証明書対応は Azure 実装(なのかな)のユーザー認証用のもよう。
AuthorizedKeysCommand /usr/sbin/aad_certhandler %u %k
AuthorizedKeysCommandUser root
通常の exit
などで切断できる
「My Account」「セキュリティ情報」から「すべてサインアウトしてください」を選択しても接続されたまま
最初は「設定のエクスポート ? ファイルの管理とか面倒そう」と思っていたのだが、シンプルに使えそうな印象になった。
az login
(電話によるサインイン等も利用可能)az ssh vm
az ssh config
で設定をエクスポート(証明書は短期間だけ有効)az logout
してコンテナを終了すれば認証情報は削除される