Skip to content

az network bastion ssh fails with KeyError checking for Native Client support #32845

@CarlOchs

Description

@CarlOchs

Describe the bug

After deploying a bastion (Standard SKU)+VM instance, I attempted to ssh from the WSL2 command line and received the following error:

The command failed with an unexpected error. Here is the traceback:
'enableTunneling'
Traceback (most recent call last):
  File "/opt/az/lib/python3.13/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 669, in execute
    raise ex
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 737, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 706, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
    return self.handler(*args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/command_operation.py", line 120, in handler
    return op(**command_args)
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 183, in ssh_bastion_host
    if not _is_nativeclient_enabled(bastion):
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 395, in _is_nativeclient_enabled
    return bastion['enableTunneling']
           ~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'enableTunneling'

Reviewing the "Automation > Export Template" output through the portal, I noticed that the generated Bicep did not include most of the properties found on the Bastion "Settings > Configuration" page. Once I enabled Native Client support, I re-generated the template, which then showed all configuraiton properties, even those set to false.

Related command

az network bastion ssh --name testcjo-bastion-dev --resource-group cjotestev2 --target-resource-id /subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Compute/virtualMachines/testcjo-vm-dev --auth-type "ssh-key" --ssh-key ~/.ssh/id_rsa.dev-deploy-vm --username vmadmin

Errors

The command failed with an unexpected error. Here is the traceback:
'enableTunneling'
Traceback (most recent call last):
  File "/opt/az/lib/python3.13/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 669, in execute
    raise ex
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 737, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 706, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
    return self.handler(*args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/command_operation.py", line 120, in handler
    return op(**command_args)
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 183, in ssh_bastion_host
    if not _is_nativeclient_enabled(bastion):
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 395, in _is_nativeclient_enabled
    return bastion['enableTunneling']
           ~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'enableTunneling'

Issue script & Debug output

az network bastion ssh --name testcjo-bastion-dev --resource-group cjotestev2 --target-resource-id /subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Compute/virtualMachines/testcjo-vm-dev --auth-type "ssh-key" --ssh-key ~/.ssh/id_rsa.dev-deploy-vm --username vmadmin --debug 2>&1 | tee /tmp/az_network_ssh.debug.log

DEBUG: cli.knack.cli: Command arguments: ['network', 'bastion', 'ssh', '--name', 'testcjo-bastion-dev', '--resource-group', 'cjotestev2', '--target-resource-id', '/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Compute/virtualMachines/testcjo-vm-dev', '--auth-type', 'ssh-key', '--ssh-key', '/home/cjochsjr/.ssh/id_rsa.dev-deploy-vm', '--username', 'vmadmin', '--debug']
DEBUG: cli.knack.cli: __init__ debug log:
Cannot enable color.
DEBUG: cli.knack.cli: Event: Cli.PreExecute []
DEBUG: cli.knack.cli: Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x75c99d0511c0>, <function OutputProducer.on_global_arguments at 0x75c99cdd4e00>, <function CLIQuery.on_global_arguments at 0x75c99cdfef20>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreCommandTableCreate []
DEBUG: cli.azure.cli.core: Modules found from index for 'network': ['azure.cli.command_modules.network', 'azure.cli.command_modules.privatedns', 'azext_bastion']
DEBUG: cli.azure.cli.core: Loading command modules:
DEBUG: cli.azure.cli.core: Name                  Load Time    Groups  Commands
DEBUG: cli.azure.cli.core: network                   0.717       121       370
DEBUG: cli.azure.cli.core: privatedns                0.017        14        60
DEBUG: cli.azure.cli.core: Total (2)                 0.734       135       430
DEBUG: cli.azure.cli.core: These extensions are not installed and will be skipped: ['azext_ai_examples', 'azext_next']
DEBUG: cli.azure.cli.core: Loading extensions:
DEBUG: cli.azure.cli.core: Name                  Load Time    Groups  Commands  Directory
DEBUG: cli.azure.cli.core: bastion                   0.007         2         9  /home/cjochsjr/.azure/cliextensions/bastion
DEBUG: cli.azure.cli.core: Total (1)                 0.007         2         9
DEBUG: cli.azure.cli.core: Loaded 135 groups, 439 commands.
DEBUG: cli.azure.cli.core: Found a match in the command table.
DEBUG: cli.azure.cli.core: Raw command  : network bastion ssh
DEBUG: cli.azure.cli.core: Command table: network bastion ssh
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x75c99bf677e0>]
DEBUG: cli.azure.cli.core.azlogging: metadata file logging enabled - writing logs to '/home/cjochsjr/.azure/commands/2026-02-24.16-22-19.network_bastion_ssh.3978641.log'.
INFO: az_command_data_logger: command args: network bastion ssh --name {} --resource-group {} --target-resource-id {} --auth-type {} --ssh-key {} --username {} --debug
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreArgumentLoad [<function register_global_subscription_argument.<locals>.add_subscription_parameter at 0x75c99bfc8c20>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostArgumentLoad []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostCommandTableCreate [<function register_ids_argument.<locals>.add_ids_arguments at 0x75c99bfcaf20>, <function register_cache_arguments.<locals>.add_cache_arguments at 0x75c99bfcb100>, <function register_upcoming_breaking_change_info.<locals>.update_breaking_change_info at 0x75c99bfcb1a0>]
DEBUG: cli.knack.cli: Event: CommandInvoker.OnCommandTableLoaded []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPreParseArgs []
DEBUG: cli.knack.cli: Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x75c99cdd4ea0>, <function CLIQuery.handle_query_parameter at 0x75c99cdfefc0>, <function register_ids_argument.<locals>.parse_ids_arguments at 0x75c99bfcafc0>]
INFO: az_command_data_logger: extension name: bastion
INFO: az_command_data_logger: extension version: 1.4.2
/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py:107: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  from pkg_resources import parse_version
DEBUG: cli.azure.cli.core.auth.persistence: build_persistence: location='/home/cjochsjr/.azure/msal_token_cache.json', encrypt=False
DEBUG: cli.azure.cli.core.auth.binary_cache: load: /home/cjochsjr/.azure/msal_http_cache.bin
DEBUG: urllib3.util.retry: Converted retries value: 1 -> Retry(total=1, connect=None, read=None, redirect=None, status=None)
DEBUG: msal.authority: Initializing with Entra authority: https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47
DEBUG: msal.authority: openid_config("https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/v2.0/.well-known/openid-configuration") = {'token_endpoint': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token', 'token_endpoint_auth_methods_supported': ['client_secret_post', 'private_key_jwt', 'client_secret_basic', 'self_signed_tls_client_auth'], 'jwks_uri': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/discovery/v2.0/keys', 'response_modes_supported': ['query', 'fragment', 'form_post'], 'subject_types_supported': ['pairwise'], 'id_token_signing_alg_values_supported': ['RS256'], 'response_types_supported': ['code', 'id_token', 'code id_token', 'id_token token'], 'scopes_supported': ['openid', 'profile', 'email', 'offline_access'], 'request_uri_parameter_supported': False, 'userinfo_endpoint': 'https://graph.microsoft.com/oidc/userinfo', 'authorization_endpoint': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/authorize', 'device_authorization_endpoint': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/devicecode', 'http_logout_supported': True, 'frontchannel_logout_supported': True, 'end_session_endpoint': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/logout', 'claims_supported': ['sub', 'iss', 'cloud_instance_name', 'cloud_instance_host_name', 'cloud_graph_host_name', 'msgraph_host', 'aud', 'exp', 'iat', 'auth_time', 'acr', 'nonce', 'preferred_username', 'name', 'tid', 'ver', 'at_hash', 'c_hash', 'email'], 'kerberos_endpoint': 'https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/kerberos', 'mtls_endpoint_aliases': {'token_endpoint': 'https://mtlsauth.microsoft.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/v2.0/token'}, 'tls_client_certificate_bound_access_tokens': True, 'tenant_region_scope': 'WW', 'cloud_instance_name': 'microsoftonline.com', 'cloud_graph_host_name': 'graph.windows.net', 'msgraph_host': 'graph.microsoft.com', 'rbac_url': 'https://pas.windows.net'}
DEBUG: msal.application: Broker enabled? None
DEBUG: cli.azure.cli.core.auth.credential_adaptor: CredentialAdaptor.get_token: scopes=('https://management.core.windows.net//.default',), kwargs={}
DEBUG: cli.azure.cli.core.auth.msal_credentials: UserCredential.acquire_token: scopes=['https://management.core.windows.net//.default'], claims_challenge=None, kwargs={}
DEBUG: msal.application: Cache hit an AT
DEBUG: msal.telemetry: Generate or reuse correlation_id: 0d3e86c3-268a-4988-a919-feabab21b050
DEBUG: cli.azure.cli.core.sdk.policies: Request URL: 'https://management.azure.com/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/bastionHosts/testcjo-bastion-dev?api-version=2024-01-01'
DEBUG: cli.azure.cli.core.sdk.policies: Request method: 'GET'
DEBUG: cli.azure.cli.core.sdk.policies: Request headers:
DEBUG: cli.azure.cli.core.sdk.policies:     'Accept': 'application/json'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-client-request-id': 'fd0aa818-119c-11f1-b305-00155d172a67'
DEBUG: cli.azure.cli.core.sdk.policies:     'CommandName': 'network bastion ssh'
DEBUG: cli.azure.cli.core.sdk.policies:     'ParameterSetName': '--name --resource-group --target-resource-id --auth-type --ssh-key --username --debug'
DEBUG: cli.azure.cli.core.sdk.policies:     'User-Agent': 'AZURECLI/2.83.0 (DEB) azsdk-python-core/1.38.0 Python/3.13.11 (Linux-6.6.87.2-microsoft-standard-WSL2-x86_64-with-glibc2.39)'
DEBUG: cli.azure.cli.core.sdk.policies:     'Authorization': '*****'
DEBUG: cli.azure.cli.core.sdk.policies: Request body:
DEBUG: cli.azure.cli.core.sdk.policies: This request has no body
DEBUG: urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
DEBUG: urllib3.connectionpool: https://management.azure.com:443 "GET /subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/bastionHosts/testcjo-bastion-dev?api-version=2024-01-01 HTTP/1.1" 200 1501
DEBUG: cli.azure.cli.core.sdk.policies: Response status: 200
DEBUG: cli.azure.cli.core.sdk.policies: Response headers:
DEBUG: cli.azure.cli.core.sdk.policies:     'Cache-Control': 'no-cache'
DEBUG: cli.azure.cli.core.sdk.policies:     'Pragma': 'no-cache'
DEBUG: cli.azure.cli.core.sdk.policies:     'Content-Length': '1501'
DEBUG: cli.azure.cli.core.sdk.policies:     'Content-Type': 'application/json; charset=utf-8'
DEBUG: cli.azure.cli.core.sdk.policies:     'Expires': '-1'
DEBUG: cli.azure.cli.core.sdk.policies:     'ETag': 'W/"26ac8c1c-113f-42f9-b05d-ec03bd3c3559"'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-request-id': 'c06372a7-c190-4d9c-ae53-22118630490c'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-correlation-request-id': '577336bb-aaf0-4a76-ac1f-395b9232c138'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-arm-service-request-id': 'd7fbb5d6-b80b-4be5-9459-481879b0c4fa'
DEBUG: cli.azure.cli.core.sdk.policies:     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-ratelimit-remaining-subscription-reads': '1099'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-ratelimit-remaining-subscription-global-reads': '16499'
DEBUG: cli.azure.cli.core.sdk.policies:     'x-ms-routing-request-id': 'WESTUS2:20260224T162219Z:577336bb-aaf0-4a76-ac1f-395b9232c138'
DEBUG: cli.azure.cli.core.sdk.policies:     'X-Content-Type-Options': 'nosniff'
DEBUG: cli.azure.cli.core.sdk.policies:     'X-Cache': 'CONFIG_NOCACHE'
DEBUG: cli.azure.cli.core.sdk.policies:     'X-MSEdge-Ref': 'Ref A: 6BD9CDD524994502A9D1A57658552CA2 Ref B: MWH011020809029 Ref C: 2026-02-24T16:22:19Z'
DEBUG: cli.azure.cli.core.sdk.policies:     'Date': 'Tue, 24 Feb 2026 16:22:18 GMT'
DEBUG: cli.azure.cli.core.sdk.policies: Response content:
DEBUG: cli.azure.cli.core.sdk.policies: {"name":"testcjo-bastion-dev","id":"/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/bastionHosts/testcjo-bastion-dev","etag":"W/\"26ac8c1c-113f-42f9-b05d-ec03bd3c3559\"","type":"Microsoft.Network/bastionHosts","location":"westus2","tags":{"environment":"dev","managedBy":"Bicep","cloud":"AzureCloud","createdDate":"2026-02-24 15:49:40Z"},"properties":{"provisioningState":"Succeeded","dnsName":"bst-0cdd5be2-64db-46d8-89f1-29529419f17b.bastion.azure.com","scaleUnits":2,"publicUri":"/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/publicIPAddresses/testcjo-pip-bastion-dev","ipConfigurations":[{"name":"IpConf","id":"/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/bastionHosts/testcjo-bastion-dev/bastionHostIpConfigurations/IpConf","etag":"W/\"26ac8c1c-113f-42f9-b05d-ec03bd3c3559\"","type":"Microsoft.Network/bastionHosts/bastionHostIpConfigurations","properties":{"provisioningState":"Succeeded","privateIPAllocationMethod":"Dynamic","publicIPAddress":{"id":"/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/publicIPAddresses/testcjo-pip-bastion-dev"},"subnet":{"id":"/subscriptions/fe96f029-0423-4766-93fb-bf2066356770/resourceGroups/cjotestev2/providers/Microsoft.Network/virtualNetworks/testcjo-vnet-dev/subnets/AzureBastionSubnet"}}}]},"sku":{"name":"Standard"}}
DEBUG: cli.azure.cli.core.azclierror: Traceback (most recent call last):
  File "/opt/az/lib/python3.13/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 669, in execute
    raise ex
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 737, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 706, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
    return self.handler(*args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/command_operation.py", line 120, in handler
    return op(**command_args)
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 183, in ssh_bastion_host
    if not _is_nativeclient_enabled(bastion):
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 395, in _is_nativeclient_enabled
    return bastion['enableTunneling']
           ~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'enableTunneling'

ERROR: cli.azure.cli.core.azclierror: The command failed with an unexpected error. Here is the traceback:
ERROR: az_command_data_logger: The command failed with an unexpected error. Here is the traceback:
ERROR: cli.azure.cli.core.azclierror: 'enableTunneling'
Traceback (most recent call last):
  File "/opt/az/lib/python3.13/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 669, in execute
    raise ex
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 737, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 706, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
    return self.handler(*args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/command_operation.py", line 120, in handler
    return op(**command_args)
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 183, in ssh_bastion_host
    if not _is_nativeclient_enabled(bastion):
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 395, in _is_nativeclient_enabled
    return bastion['enableTunneling']
           ~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'enableTunneling'
ERROR: az_command_data_logger: 'enableTunneling'
Traceback (most recent call last):
  File "/opt/az/lib/python3.13/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 669, in execute
    raise ex
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 737, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
                   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 706, in _run_job
    result = cmd_copy(params)
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/__init__.py", line 336, in __call__
    return self.handler(*args, **kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/az/lib/python3.13/site-packages/azure/cli/core/commands/command_operation.py", line 120, in handler
    return op(**command_args)
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 183, in ssh_bastion_host
    if not _is_nativeclient_enabled(bastion):
           ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/cjochsjr/.azure/cliextensions/bastion/azext_bastion/custom.py", line 395, in _is_nativeclient_enabled
    return bastion['enableTunneling']
           ~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'enableTunneling'
To check existing issues, please visit: https://github.com/Azure/azure-cli/issues
DEBUG: cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x75c99bf67a60>]
INFO: az_command_data_logger: exit code: 1
INFO: cli.__main__: Command ran in 1.159 seconds (init: 0.169, invoke: 0.991)
INFO: telemetry.main: Begin splitting cli events and extra events, total events: 1
INFO: telemetry.client: Accumulated 0 events. Flush the clients.
INFO: telemetry.main: Finish splitting cli events and extra events, cli events: 1
INFO: telemetry.save: Save telemetry record of length 8672 in cache file under /home/cjochsjr/.azure/telemetry/20260224162219353
INFO: telemetry.main: Begin creating telemetry upload process.
INFO: telemetry.process: Creating upload process: "/opt/az/bin/python3 /opt/az/lib/python3.13/site-packages/azure/cli/telemetry/__init__.py /home/cjochsjr/.azure /home/cjochsjr/.azure/telemetry/20260224162219353"
INFO: telemetry.process: Return from creating process 3978672
INFO: telemetry.main: Finish creating telemetry upload process.

Expected behavior

I expected the ssh command to fail gracefully due to not setting up Native Client.

Environment Summary

azure-cli                         2.83.0

core                              2.83.0
telemetry                          1.1.0

Extensions:
azure-devops                       1.0.2
bastion                            1.4.2
ssh                                2.0.6

Dependencies:
msal                            1.35.0b1
azure-mgmt-resource               23.3.0

Python location '/opt/az/bin/python3'
Config directory '/home/cjochsjr/.azure'
Extensions directory '/home/cjochsjr/.azure/cliextensions'

Python (Linux) 3.13.11 (main, Jan 27 2026, 07:21:51) [GCC 11.4.0]

Legal docs and information: aka.ms/AzureCliLegal


Your CLI is up-to-date.

Additional context

This may only occur after deploying a bastion instance (Standard SKU) using automation (I used bicep)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Auto-AssignAuto assign by botNetwork - BastionService AttentionThis issue is responsible by Azure service team.bugThis issue requires a change to an existing behavior in the product in order to be resolved.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions