你将完成什么
- 使用 Azure CLI 创建 Azure 网络(VNet、子网、NSG)和计算资源
- 应用 NSG 规则,使 VM 的 SSH 仅允许来自 Azure Bastion
- 使用 Azure Bastion 进行 SSH 访问(VM 上没有公共 IP)
- 使用安装程序脚本安装 OpenClaw
- 验证网关
你需要准备
- 一个具有创建计算和网络资源权限的 Azure 订阅
- 已安装 Azure CLI(参见 Azure CLI 安装步骤)
- 一对 SSH 密钥(如果需要,本指南将介绍如何生成)
- 大约 20-30 分钟
配置部署
1
登录 Azure CLI
ssh 扩展是 Azure Bastion 原生 SSH 隧道所必需的。2
注册所需的资源提供程序(仅需一次)
Registered。3
设置部署变量
/26。4
选择 SSH 密钥
如果你已有现有的公钥,请使用它:否则,生成一个:
5
选择 VM 大小和 OS 磁盘大小
- 轻量使用时先选小一点,之后再扩容。
- 对于更重的自动化、更多通道或更大的模型/工具工作负载,使用更多 vCPU/RAM/磁盘。
- 如果某个规格在你的区域或订阅配额中不可用,请选择最接近的可用 SKU。
部署 Azure 资源
1
创建资源组
2
创建网络安全组
创建 NSG 并添加规则,使只有 Bastion 子网可以通过 SSH 进入 VM。规则按优先级评估,数字越小越先执行:Bastion 流量在 100 处被允许,然后所有其他 SSH 分别在 110 和 120 处被阻止。
3
创建虚拟网络和子网
创建包含 VM 子网(已附加 NSG)的 VNet,然后添加 Bastion 子网。
4
创建 VM
VM 不会获得公共 IP。SSH 访问将完全通过 Azure Bastion 进行。
--public-ip-address "" 可防止分配公共 IP。--nsg "" 会跳过 NIC 级别的 NSG,因为子网级别的 NSG 已经负责安全控制。如果你想固定某个 Ubuntu 镜像版本而不是使用 latest,请先列出可用版本:5
创建 Azure Bastion
Azure Bastion 提供托管 SSH 访问,而无需在 VM 上暴露公共 IP。基于 CLI 的 Bastion 的部署通常需要 5-10 分钟,但在某些区域可能需要 15-30 分钟。
az network bastion ssh 需要启用隧道功能的 Standard SKU。安装 OpenClaw
1
通过 Azure Bastion SSH 进入 VM
2
安装 OpenClaw(在 VM shell 中)
3
验证网关
在引导完成后:如果你的组织已经拥有 GitHub Copilot 许可证,你可以在引导过程中选择 GitHub Copilot 提供方,而不是单独的模型 API 密钥。请参阅 GitHub Copilot 提供方。
成本考虑
大致的每月成本(请在 Azure Pricing Calculator 中确认当前价格,因为费率会因区域不同而变化,并且会随时间调整):- Azure Bastion Standard SKU:大约 $140/月
- VM(
Standard_B2as_v2):大约 $55/月
-
不使用时解除分配 VM。这样会停止计算费用(磁盘费用仍会保留)。在解除分配期间,网关不可访问。
- 在不需要时删除 Bastion,并在需要再次 SSH 访问时重新创建;它是最大的成本组成部分,而且部署只需几分钟。
-
如果你只需要基于 Portal 的 SSH,而不需要 CLI 隧道(
az network bastion ssh),可以使用 Basic Bastion SKU(大约 $38/月)。
清理
删除此指南创建的所有资源:后续步骤
- 设置消息通道:Channels
- 将本地设备配对为节点:Nodes
- 配置网关:Gateway configuration
- 了解更多使用 GitHub Copilot 模型提供程序在 Azure 上部署的细节:OpenClaw on Azure with GitHub Copilot