SSH 對已啟用 Azure Arc 的伺服器存取
已啟用 Arc 的伺服器 SSH 允許與已啟用 Arc 伺服器的 SSH 連線,而不需要公用 IP 位址或其他開放式連接埠。 此功能可以互動使用、自動化或搭配現有 SSH 型工具,進而讓現有管理工具對已啟用 Azure Arc 的伺服器有更多作用。
重點優勢
SSH 對已啟用 Azure Arc 的伺服器存取提供下列主要優點:
- 不需要公用 IP 位址或開放式 SSH 連接埠
- 對 Windows 和 Linux 機器的存取
- 以本機使用者或 Azure 使用者 (僅限 Linux)登入的功能
- 支援具有組態檔支援的其他 OpenSSH 工具
必要條件
若要啟用這項功能,請確定下列情況:
- 確定已啟用 Arc 的伺服器具有版本為 "1.31.xxxx" 或更高的混合式代理程式。 在已開啟 Arc 的伺服器上執行:
azcmagent show
- 確定已啟用 Arc 的伺服器已啟用 "sshd" 服務。
- 針對 Linux 機器,
openssh-server
可以透過套件管理員安裝,而且必須啟用。 - 必須在 Windows 上啟用 SSHD。
- 針對 Linux 機器,
- 確定您已獲指派擁有者或參與者角色。
使用 Microsoft Entra 認證進行驗證有其他需求:
aadsshlogin
和aadsshlogin-selinux
(如果適用) 必須安裝於已啟用 Arc 的伺服器上。 這些套件會與Azure AD based SSH Login – Azure Arc
VM 延伸模組一起安裝。設定 VM 的角色指派。 有兩個 Azure 角色可用來授權 VM 登入:
- 虛擬機器系統管理員登入:獲指派此角色的使用者能夠以系統管理員權限登入 Azure 虛擬機器。
- 虛擬機器使用者登入:獲指派此角色的使用者能夠以一般使用者權限登入 Azure 虛擬機器。
獲指派 VM 擁有者或參與者角色的 Azure 使用者,並不會自動取得透過 SSH 對 VM 進行 Microsoft Entra 登入的權限。 這是為了在一組控制虛擬機器的人員與一組能夠存取虛擬機器的人員之間提供刻意 (且經過稽核) 的隔離。
注意
[虛擬機器系統管理員登入] 和 [虛擬機器使用者登入] 角色使用
dataActions
,並可在管理群組、訂閱、資源群組或資源範圍內對其進行指派。 建議您在管理群組、訂閱或資源層級指派角色,而不是在個別 VM 層級指派。 此做法可避免達到每個訂閱的 Azure 角色指派限制。
可用性
已啟用 Arc 的伺服器目前支援所有公用雲端區域的 SSH 存取。已啟用 Arc 的伺服器支援。
注意
目前不支援非公用雲端。
開始使用
登錄 HybridConnectivity 資源提供者
注意
這是一次性作業且必須在每個訂用帳戶上執行。
檢查是否已登錄 HybridConnectivity 資源提供者 (RP):
az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState
如果未登錄 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 之伺服器上的連線端點中的服務組態,以允許 SSH 連線到特定埠。 您只能允許連線至單一連接埠。 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 登入延伸模組
您可以從 Arc 伺服器的延伸模組功能表新增 Azure AD based SSH Login – Azure Arc
VM 延伸模組。 也可以透過套件管理員在本機安裝 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)。
下一步
- 了解適用於 Windows 的 OpenSSH
- 了解如何針對已啟用 Azure Arc 的伺服器 SSH 存取進行疑難排解。
- 了解如何針對代理程式連線問題進行疑難排解。