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 資格情報を使用した認証には、追加の要件があります。
aadsshlogin
とaadsshlogin-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 モジュールにパッケージ化されています。
- 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 のページを参照してください。
次のステップ
- OpenSSH for Windows について学習する
- Azure Arc 対応サーバーへの SSH アクセスのトラブルシューティングについて学習する。
- エージェント接続の問題のトラブルシューティングについて学習する。