code: def create_tunnel(
      self,
      ssh_tunnel: "SSHTunnel",
      sqlalchemy_database_uri: str,
  ) -> sshtunnel.SSHTunnelForwarder:
      url = make_url_safe(sqlalchemy_database_uri)
      params = {
          "ssh_address_or_host": (
              ssh_tunnel.server_address,
              ssh_tunnel.server_port,
          ),
          "ssh_username": ssh_tunnel.username,
          "remote_bind_address": (url.host, url.port),
          "local_bind_address": (self.local_bind_address,),
          "debug_level": logging.getLogger("flask_appbuilder").level,
      }
  
      if ssh_tunnel.password:
          params["ssh_password"] = ssh_tunnel.password
      elif ssh_tunnel.private_key:
          private_key_file = StringIO(ssh_tunnel.private_key)
          private_key = RSAKey.from_private_key(
              private_key_file, ssh_tunnel.private_key_password
          )
          params["ssh_pkey"] = private_key
  
      return sshtunnel.open_tunnel(**params)
  
file_path: superset/superset/extensions/ssh.py
imports: import logging
  from io import StringIO
  from typing import TYPE_CHECKING
  import sshtunnel
  from flask import Flask
  from paramiko import RSAKey
  from superset.databases.utils import make_url_safe
  from superset.utils.class_utils import load_class_from_name
label_desc: Use image node_id 3 for calling the SSHManager obj's underlying member method code with example usage: obj.create_tunnel(ssh_tunnel, sqlalchemy_database_uri) and returns: sshtunnel