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 アクセスのトラブルシューティングについて学習する。
- エージェント接続の問題のトラブルシューティングについて学習する。