Azure Arc 対応サーバーへの SSH アクセス

Arc 対応サーバー向けの SSH により、パブリック IP アドレスや追加のオープン ポートを必要とせずに、Arc 対応サーバーへの SSH ベースの接続が可能になります。 この機能は、対話的に、または自動化して使用する以外に、既存の SSH ベースのツールで使用できるため、既存の管理ツールが Azure Arc 対応サーバーに大きな影響を与えることができます。

主な利点

Arc 対応サーバーに SSH アクセスすることで得られる主な利点には、次のようなものがあります。

  • パブリック IP アドレスまたはオープン SSH ポートが不要
  • Windows および Linux マシンへのアクセス
  • ローカル ユーザーまたは Azure ユーザー (Linux のみ) としてログインする機能
  • 構成ファイルのサポートによる他の OpenSSH ベースのツールのサポート

前提条件

この機能を有効にするには、次のことを確認してください。

  • Arc 対応サーバーのハイブリッド エージェント バージョンが "1.31.xxxx" 以降であることを確認してください。 Arc 対応サーバーで azcmagent show を実行します。
  • Arc 対応サーバーで "sshd" サービスが有効になっていることを確認します。 Linux マシンの場合は、パッケージ マネージャーを使用して openssh-server をインストールでき、これを有効にする必要があります。 SSHD を Windows で有効にする必要があります。
  • 所有者または投稿者ロールが割り当てられていることを確認してください。

Microsoft Entra 資格情報を使用した認証には、追加の要件があります。

  • aadsshloginaadsshlogin-selinux (必要に応じて) を Arc 対応サーバーにインストールする必要があります。 これらのパッケージは、Azure AD based SSH Login – Azure Arc VM 拡張機能と共にインストールされます。

  • VM のロールの割り当てを構成します。 VM へのログインを承認するには、次の 2 つの Azure ロールが使用されます。

    • 仮想マシンの管理者ログイン: このロールを割り当てられたユーザーは、管理者特権を持つユーザーとして Azure 仮想マシンにログインできます。
    • 仮想マシンのユーザー ログイン: このロールが割り当てられたユーザーは 正規ユーザーの権限を持つユーザーとして Azure 仮想マシンにログインできます。

    VM の所有者または共同作成者のロールが割り当てられた Azure ユーザーに、SSH 経由で VM に Microsoft Entra ログインする権限は自動的に付与されません。 これは、仮想マシンを管理するユーザーと仮想マシンにアクセスできるユーザーを意図的に (なおかつ監査上) 分離するためです。

    Note

    仮想マシンの管理者ログインおよび仮想マシンのユーザー ログインのロールでは dataActions を使用し、管理グループ、サブスクリプション、リソース グループ、またはリソースのスコープで割り当てることができます。 個々の VM レベルではなく、管理グループ、サブスクリプション、またはリソース レベルでロールを割り当てることをお勧めします。 サブスクリプションあたりの Azure ロール割り当ての上限を超えるリスクの防止策になります。

可用性

Arc 対応サーバーへの SSH アクセスは、現在、Arc 対応サーバーでサポートされているすべてのリージョンでサポートされています。ただし、次の例外があります。

  • ドイツ中西部

作業の開始

HybridConnectivity リソース プロバイダーを登録する

Note

これは、各サブスクリプションで実行する必要がある 1 回限りの操作です。

HybridConnectivity リソース プロバイダー (RP) が登録されているかどうかを確認します。

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

RP が登録されていない場合は、以下を実行します。

az provider register -n Microsoft.HybridConnectivity

この操作は、完了するまで 2 分から 5 分かかることがあります。 先に進む前に、RP が登録されていることを確認してください。

既定の接続エンドポイントを作成する

Note

次の手順は、最初の接続時に自動的に完了する必要があるため、ほとんどのユーザーは実行する必要はありません。 この手順は、Arc 対応サーバーごとに完了する必要があります。

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{"properties": {"type": "default"}}'

Note

PowerShell から Azure CLI を使用する場合は、以下を使用する必要があります。

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

エンドポイントの作成を検証します。

az rest --method get --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15

ローカル コマンド ライン ツールをインストールする

この機能は現在、Azure CLI 拡張機能と Azure PowerShell モジュールにパッケージ化されています。

az extension add --name ssh

Note

Azure CLI 拡張機能のバージョンは 2.0.0 以降である必要があります。

Arc 対応サーバーで機能を有効にする

SSH 接続機能を使用するには、Arc 対応サーバーの接続エンドポイントのサービス構成を更新して、特定のポートへの SSH 接続を許可する必要があります。 許可できるのは 1 つのポートへの接続のみです。 CLI ツールは、実行時に許可されたポートの更新を試みますが、ポートは次のように手動で構成できます。

Note

接続できるようになるまで、サービス構成の更新後に遅延が発生する場合があります。

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body "{\"properties\": {\"serviceName\": \"SSH\", \"port\": 22}}"

SSH 接続に既定以外のポートを使用している場合は、前のコマンドのポート 22 を希望するポートに置き換えてください。

省略可能: Azure AD ログイン拡張機能をインストールする

Azure AD based SSH Login – Azure Arc VM 拡張機能は、Arc サーバーの拡張機能メニューから追加できます。 Azure AD ログイン拡張機能は、ローカルにインストールすることもできます。apt-get install aadsshlogin からパッケージ マネージャーを使用するか、または次のコマンドを使用してください。

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

例を表示するには、Az CLI ドキュメントの az ssh のページ、または Azure PowerShell ドキュメントの Az.Ssh のページを参照してください。

次のステップ