class_docstr: Execute remote commands with Paramiko.
  
  .. seealso:: https://github.com/paramiko/paramiko
  
  This hook also lets you create ssh tunnel and serve as basis for SFTP file transfer.
  
  :param ssh_conn_id: :ref:`ssh connection id<howto/connection:ssh>` from airflow
      Connections from where all the required parameters can be fetched like
      username, password or key_file, though priority is given to the
      params passed during init.
  :param remote_host: remote host to connect
  :param username: username to connect to the remote_host
  :param password: password of the username to connect to the remote_host
  :param key_file: path to key file to use to connect to the remote_host
  :param port: port of remote host to connect (Default is paramiko SSH_PORT)
  :param conn_timeout: timeout (in seconds) for the attempt to connect to the remote_host.
      The default is 10 seconds. If provided, it will replace the `conn_timeout` which was
      predefined in the connection of `ssh_conn_id`.
  :param timeout: (Deprecated). timeout for the attempt to connect to the remote_host.
      Use conn_timeout instead.
  :param cmd_timeout: timeout (in seconds) for executing the command. The default is 10 seconds.
      Nullable, `None` means no timeout. If provided, it will replace the `cmd_timeout`
      which was predefined in the connection of `ssh_conn_id`.
  :param keepalive_interval: send a keepalive packet to remote host every
      keepalive_interval seconds
  :param banner_timeout: timeout to wait for banner from the server in seconds
  :param disabled_algorithms: dictionary mapping algorithm type to an
      iterable of algorithm identifiers, which will be disabled for the
      lifetime of the transport
  :param ciphers: list of ciphers to use in order of preference
code: def __enter__(self) -> SSHHook:
      warnings.warn(
          "The contextmanager of SSHHook is deprecated."
          "Please use get_conn() as a contextmanager instead."
          "This method will be removed in Airflow 2.0",
          category=AirflowProviderDeprecationWarning,
          stacklevel=2,
      )
      return self
  
imports: from __future__ import annotations
  import os
  import warnings
  from base64 import decodebytes
  from functools import cached_property
  from io import StringIO
  from select import select
  from typing import Any, Sequence
  import paramiko
  from paramiko.config import SSH_PORT
  from sshtunnel import SSHTunnelForwarder
  from tenacity import Retrying, stop_after_attempt, wait_fixed, wait_random
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.hooks.base import BaseHook
  from airflow.utils.platform import getuser
  from airflow.utils.types import NOTSET, ArgNotSet
label_desc: Use image node_id 5 for calling the SSHHook obj's underlying member method code with example usage: obj.__enter__() and returns: self