airflow.providers.ssh.hooks.ssh

Hook for SSH connections.

Module Contents

Classes

SSHHook

Hook for ssh remote execution using Paramiko.

Attributes

TIMEOUT_DEFAULT

airflow.providers.ssh.hooks.ssh.TIMEOUT_DEFAULT = 10[source]
class airflow.providers.ssh.hooks.ssh.SSHHook(ssh_conn_id=None, remote_host='', username=None, password=None, key_file=None, port=None, timeout=None, conn_timeout=None, keepalive_interval=30, banner_timeout=30.0)[source]

Bases: airflow.hooks.base.BaseHook

Hook for ssh remote execution using Paramiko. ref: https://github.com/paramiko/paramiko This hook also lets you create ssh tunnel and serve as basis for SFTP file transfer

Parameters
  • ssh_conn_id (Optional[str]) -- ssh connection id from airflow Connections from where all the required parameters can be fetched like username, password or key_file. Thought the priority is given to the param passed during init

  • remote_host (str) -- remote host to connect

  • username (Optional[str]) -- username to connect to the remote_host

  • password (Optional[str]) -- password of the username to connect to the remote_host

  • key_file (Optional[str]) -- path to key file to use to connect to the remote_host

  • port (Optional[int]) -- port of remote host to connect (Default is paramiko SSH_PORT)

  • conn_timeout (Optional[int]) -- 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.

  • timeout (Optional[int]) -- (Deprecated). timeout for the attempt to connect to the remote_host. Use conn_timeout instead.

  • keepalive_interval (int) -- send a keepalive packet to remote host every keepalive_interval seconds

  • banner_timeout (float) -- timeout to wait for banner from the server in seconds

conn_name_attr = ssh_conn_id[source]
default_conn_name = ssh_default[source]
conn_type = ssh[source]
hook_name = SSH[source]
static get_ui_field_behaviour()[source]

Returns custom field behaviour

host_proxy(self)[source]
get_conn(self)[source]

Opens a ssh connection to the remote host.

Return type

paramiko.client.SSHClient

__enter__(self)[source]
__exit__(self, exc_type, exc_val, exc_tb)[source]
get_tunnel(self, remote_port, remote_host='localhost', local_port=None)[source]

Creates a tunnel between two hosts. Like ssh -L <LOCAL_PORT>:host:<REMOTE_PORT>.

Parameters
  • remote_port (int) -- The remote port to create a tunnel to

  • remote_host (str) -- The remote host to create a tunnel to (default localhost)

  • local_port (Optional[int]) -- The local port to attach the tunnel to

Returns

sshtunnel.SSHTunnelForwarder object

Return type

sshtunnel.SSHTunnelForwarder

create_tunnel(self, local_port, remote_port, remote_host='localhost')[source]

Creates tunnel for SSH connection [Deprecated].

Parameters
  • local_port (int) -- local port number

  • remote_port (int) -- remote port number

  • remote_host (str) -- remote host

Returns

Return type

sshtunnel.SSHTunnelForwarder

exec_ssh_client_command(self, ssh_client, command, get_pty, environment, timeout)[source]

Was this entry helpful?