docstr: :param ports: Mapping { remote port -> local port }
docstr_tok: [":","param","ports",":","Mapping","{","remote","port","-",">","local","port","}"]
code: def __init__(
      self,
      host: str,
      id_rsa_path: PathLike,
      ports: Dict[int, int],
      control_sock_path: PathLike,
      options: Dict[str, str],
  ):
      """
      :param ports: Mapping { remote port -> local port }
      """
      self.host = host
      self.id_rsa_path = id_rsa_path
      self.ports = ports
      self.control_sock_path = control_sock_path
      self.options = options
  
file_path: dstack/src/dstack/_internal/core/services/ssh/tunnel.py
imports: import os
  import subprocess
  import tempfile
  from typing import Dict, Optional
  from dstack._internal.core.services.ssh import get_ssh_error
  from dstack._internal.utils.logging import get_logger
  from dstack._internal.utils.path import PathLike
label_desc: Use image node_id 1 to create a new SSHTunnel object  with example: obj = SSHTunnel(host, id_rsa_path, ports, control_sock_path, options)