A Microsoft cloud service that enables deployment of Azure services across hybrid and multicloud environments.
For Azure Arc-enabled servers that are not showing up for remote tools or console access, check these areas in order:
- Verify SSH or remote access is enabled on the Arc-enabled server.
- Ensure the SSHD service is running on the server.
- Ensure SSH traffic is allowed on the target port.
- If needed, enable the SSH service configuration for Arc connectivity on port 22 or the nondefault port in use:
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}}'Invoke-AzRestMethod -Method put -Path /subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 -Payload '{"properties": {"serviceName": "SSH", "port": "22"}}' - Check Azure role assignments.
- To enable SSH connectivity the account needs Owner or Contributor on the Arc-enabled server.
- To connect, ensure the account has the required read access.
- For local login, assign Virtual Machine Local user Login.
- For Microsoft Entra login, assign Virtual Machine User Login or Virtual Machine Administrator Login, and ensure the Microsoft Entra SSH Login extension is installed on the Arc-enabled server.
- Confirm the
Microsoft.HybridConnectivityresource provider is registered.- Run:
az provider register -n Microsoft.HybridConnectivity az provider show -n Microsoft.HybridConnectivity- Verify
registrationStateisRegistered. - Restart the hybrid agent on the Arc-enabled server after registration.
- If the server uses Azure Arc Private Link, validate DNS resolution.
- Check that on-premises DNS forwards to Azure DNS or has the correct private A records.
- These lookups should return private IP addresses:
nslookup gbl.his.arc.azure.com nslookup agentserviceapi.guestconfiguration.azure.com- If they resolve to public IP addresses, correct the DNS configuration.
- It can take up to 15 minutes after associating a machine with a private link scope before connections are accepted.
- Check agent connectivity and status if the machine is failing to connect to Azure Arc.
- Verify the agent version and current state:
azcmagent version azcmagent show- Run the connect command with verbose logging if onboarding or reconnect is failing:
azcmagent connect \ --resource-group "${RESOURCE_GROUP}" \ --tenant-id "${TENANT_ID}" \ --location "${LOCATION}" \ --subscription-id "${SUBSCRIPTION_ID}" \ --access-token "${ACCESS_TOKEN}" \ --verbose- Enable debug logging:
azcmagent config set log.level DEBUG journalctl -u azcmagent -f - If the target is actually an Azure virtual machine, do not use Azure Arc in production for that VM.
- Azure Arc-enabled servers is not supported for production use on Azure virtual machines.
- It can only be configured on an Azure VM for evaluation and testing purposes.
If the immediate goal is remote access, the most common blockers are:
- SSHD not running or port 22 blocked
- Missing
Owner/Contributorrole to enable connectivity - Missing login roles to connect
-
Microsoft.HybridConnectivitynot registered - Private Link DNS resolving to public instead of private IPs
- Troubleshoot SSH access to Azure Arc-enabled servers
- Troubleshoot SSH access to Azure Arc-enabled servers
- Use Azure Private Link to securely connect servers to Azure Arc
- Troubleshoot issues with Azure Arc enrollment for virtual machines with managed identities
- Evaluate Azure Arc-enabled servers on an Azure virtual machine