Hook for SSH connections.
- airflow.providers.ssh.hooks.ssh.TIMEOUT_DEFAULT = 10¶
- class airflow.providers.ssh.hooks.ssh.SSHHook(ssh_conn_id: Optional[str] = None, remote_host: str = '', username: Optional[str] = None, password: Optional[str] = None, key_file: Optional[str] = None, port: Optional[int] = None, timeout: Optional[int] = None, conn_timeout: Optional[int] = None, keepalive_interval: int = 30)¶
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
ssh_conn_id (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 (str) -- username to connect to the remote_host
password (str) -- password of the username to connect to the remote_host
key_file (str) -- path to key file to use to connect to the remote_host
port (int) -- port of remote host to connect (Default is paramiko SSH_PORT)
conn_timeout (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 (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
- conn_name_attr = ssh_conn_id¶
- default_conn_name = ssh_default¶
- conn_type = ssh¶
- hook_name = SSH¶
- static get_ui_field_behaviour() Dict ¶
Returns custom field behaviour
- get_conn(self) paramiko.SSHClient ¶
Opens a ssh connection to the remote host.
- Return type
- get_tunnel(self, remote_port: int, remote_host: str = 'localhost', local_port: Optional[int] = None) sshtunnel.SSHTunnelForwarder ¶
Creates a tunnel between two hosts. Like ssh -L <LOCAL_PORT>:host:<REMOTE_PORT>.