Ssh

如何通過 Azure Bastion SSH 連接到 Azure VM?

  • February 15, 2022

我最初的理解是,Azure Bastion就像一個輕量級的 SSH(和 RDP)網關,通向同一個虛擬網路上的資源(特別是 VM),而不是將完整的 VM 預配為 jumpbox。也就是說,我希望能夠從公共 Internet 上的任何地方通過 SSH 連接到同一網路上的 VM:

ssh -i /path/to/private.key -J BASTION_IP user@VM_IP

BASTION_IP與堡壘資源關聯的公共 IP 地址在哪裡,並且VM_IP是堡壘子網的兄弟子網中 VM 的內部 IP 地址。

我已經在 Terraform 中使用“基本”堡壘 SKU 進行了設置,但是當我嘗試連接時,它會超時。在 Azure Poral 中,有一個名為“Native Client Support”的選項(需要“標準”SKU),作為tunneling_enabled相應 Terraform 資源中的參數公開。進行了這些更改後,我的連接仍然超時。

按照文件的兔子洞建議您必須使用 Azure CLI。事實上,我可以使用 Azure CLI 進行隧道工作——顯然,SSH 擴展僅適用於 Windows——但這有點小題大做:

az login  # I assume there's a way to login unattended
az account set --subscription SUBSCRIPTION_ID
az network bastion tunnel --name BASTION_NAME --resource-group RG_NAME --target-resource-id REALLY_LONG_VM_RESOURCE_ID --resource-port 22 --port 2222 &
ssh -i /path/to/private.key -p 2222 user@localhost

是否有通過 Azure 堡壘通過 SSH 連接到 Azure VM 的非專有方式?或者我對其案例的假設是否成立?

您實際上只有兩種方法可以使用本地客戶端通過 SSH 連接到 Bastion,並且都涉及 Azure CLI:

  • 如您所述,使用 Az Network Ba​​stion Tunnel 創建隧道,然後根據需要進行連接
  • 使用 Az Network Ba​​stion SSH 直接使用本機客戶端

如果您想使用服務主體進行連接,您可以自動執行此連接,但假設您想以使用者身份連接,那麼必須儲存使用者憑據並處理 MFA 等會有點麻煩。

引用自:https://serverfault.com/questions/1093389