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
の場合は、パッケージ マネージャーを使用してインストールでき、有効にする必要があります。 Windows で SSHD を 有効にする必要があります。 - 所有者ロールまたは投稿者ロールが割り当てられていることを確認します。
Azure AD 資格情報を使用した認証には、追加の要件があります。
aadsshlogin
とaadsshlogin-selinux
(必要に応じて) を Arc 対応サーバーにインストールする必要があります。 これらのパッケージは、VM 拡張機能と共にAzure AD based SSH Login – Azure Arc
インストールされます。VM のロールの割り当てを構成します。 VM へのログインを承認するには、次の 2 つの Azure ロールが使用されます。
- 仮想マシンの管理者ログイン: このロールを割り当てられたユーザーは、管理者特権を持つユーザーとして Azure 仮想マシンにログインできます。
- 仮想マシンのユーザー ログイン: このロールが割り当てられたユーザーは 正規ユーザーの権限を持つユーザーとして Azure 仮想マシンにログインできます。
VM の所有者または共同作成者のロールが割り当てられた Azure ユーザーに、SSH 経由で VM に Azure AD ログインする権限は自動的に付与されません。 これは、仮想マシンを管理するユーザーと仮想マシンにアクセスできるユーザーを意図的に (なおかつ監査上) 分離するためです。
注意
仮想マシンの管理者ログインおよび仮想マシンのユーザー ログインのロールでは
dataActions
を使用し、管理グループ、サブスクリプション、リソース グループ、またはリソースのスコープで割り当てることができます。 個々の VM レベルではなく、管理グループ、サブスクリプション、またはリソース レベルでロールを割り当てることをお勧めします。 サブスクリプションあたりの Azure ロール割り当ての上限を超えるリスクの防止策になります。
可用性
Arc 対応サーバーへの SSH アクセスは現在、Arc-Enabled サーバーでサポートされているすべてのリージョンでサポートされています。ただし、次の例外があります。
- ドイツ中西部
作業の開始
HybridConnectivity リソース プロバイダーを登録する
注意
これは、各サブスクリプションで実行する必要がある 1 回限りの操作です。
HybridConnectivity リソース プロバイダー (RP) が登録されているかどうかを確認します。
az provider show -n Microsoft.HybridConnectivity
RP が登録されていない場合は、以下を実行します。
az provider register -n Microsoft.HybridConnectivity
この操作は、完了するまで 2 分から 5 分かかることがあります。 先に進む前に、RP が登録されていることを確認してください。
既定の接続エンドポイントを作成する
注意
次の手順は、最初の接続時に自動的に完了するため、ほとんどのユーザーに対して実行する必要はありません。 この手順は、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"}}'
注意
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
注意
Azure CLI 拡張機能のバージョンは 2.0.0 を超える必要があります。
Arc 対応サーバーで機能を有効にする
SSH 接続機能を使用するには、Arc-Enabled サーバーの接続エンドポイントのサービス構成を更新して、特定のポートへの SSH 接続を許可する必要があります。 1 つのポートへの接続のみを許可できます。 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/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
SSH 接続に既定以外のポートを使用している場合は、前のコマンドでポート 22 を目的のポートに置き換えます。
省略可能: Azure AD ログイン拡張機能をインストールする
VM 拡張機能は Azure AD based SSH Login – Azure Arc
、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 アクセスのトラブルシューティングについて説明します。
- エージェントの接続に関する問題のトラブルシューティングについて説明します。