使用Azure Bastion隧道连接数据库时出现KeyError: 'authToken'错误
Azure Bastion隧道SSH连接触发KeyError: 'authToken'问题排查
问题场景
本地执行Azure CLI命令创建Bastion隧道:
az network bastion tunnel --name name --resource-group group --target-resource-id subscriptionid --resource-port 22 --port 2222 --subscription subscription
隧道创建成功,返回提示:
Opening tunnel on port: 2222
Tunnel is ready, connect on port 2222
但发起SSH连接时,抛出KeyError异常:
Exception in thread Thread-1 (_start_tunnel): Traceback (most recent call last): File "/usr/local/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1045, in _bootstrap_inner self.run() File "/usr/local/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 982, in run self._target(*self._args, **self._kwargs) File "/Users/user/.azure/cliextensions/bastion/azext_bastion/custom.py", line 364, in _start_tunnel tunnel_server.start_server() File "/Users/user/.azure/cliextensions/bastion/azext_bastion/tunnel.py", line 195, in start_server self._listen() File "/Users/user/.azure/cliextensions/bastion/azext_bastion/tunnel.py", line 123, in _listen auth_token = self._get_auth_token() ^^^^^^^^^^^^^^^^^^^^^^ File "/Users/user/.azure/cliextensions/bastion/azext_bastion/tunnel.py", line 112, in _get_auth_token self.last_token = response_json["authToken"] ~~~~~~~~~~~~~^^^^^^^^^^^^^ KeyError: 'authToken'
已将Azure CLI及Bastion扩展更新至最新版本。
排查与解决步骤
修正目标资源ID格式
--target-resource-id需传入完整的目标资源ID(如虚拟机、数据库服务器的资源ID),格式示例:/subscriptions/{sub-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}。若误传订阅ID,会导致服务返回的响应中无authToken字段。验证网络连通性
- 确认Bastion所在VNet与目标资源VNet已配置对等连接(跨VNet场景)。
- 检查目标资源的NSG规则,允许Bastion的公共IP或VNet内IP访问目标端口(此处为22)。
刷新Azure CLI认证
执行以下命令重新登录,刷新会话令牌:az logout az login检查权限配置
确保当前账号拥有:- Bastion资源的
Microsoft.Network/bastions/connect/action权限 - 目标资源的对应连接权限(如VM的
Microsoft.Compute/virtualMachines/connect/action)
- Bastion资源的
回退Bastion扩展版本
若最新版本存在兼容性问题,尝试降级到稳定版本:az extension remove --name bastion az extension add --name bastion --version 0.2.0
内容的提问来源于stack exchange,提问作者Janie
相关产品推荐
相关产品推荐

