airflow.providers.ssh.hooks.ssh¶
SSH 连接的 Hook。
属性¶
类¶
使用 Paramiko 执行远程命令。 |
|
使用 asyncssh 的异步 SSH Hook,用于触发器。 |
函数¶
|
模块内容¶
- class airflow.providers.ssh.hooks.ssh.SSHHook(ssh_conn_id=None, remote_host='', username=None, password=None, key_file=None, port=None, conn_timeout=None, cmd_timeout=NOTSET, keepalive_interval=30, banner_timeout=30.0, disabled_algorithms=None, ciphers=None, auth_timeout=None, host_proxy_cmd=None)[source]¶
基类:
airflow.providers.common.compat.sdk.BaseHook使用 Paramiko 执行远程命令。
此 Hook 还可以创建 SSH 隧道,并作为 SFTP 文件传输的基础。
- 参数:
ssh_conn_id (str | None) – ssh connection id 来自 Airflow Connections,可获取所需的参数,如用户名、密码或 key_file,但在初始化期间传入的参数具有更高优先级。
remote_host (str) – 要连接的远程主机
username (str | None) – 用于登录 remote_host 的用户名
password (str | None) – 登录 remote_host 的用户名对应的密码
key_file (str | None) – 用于连接 remote_host 的密钥文件路径
port (int | None) – 连接的远程主机端口(默认使用 paramiko 的 SSH_PORT)
conn_timeout (int | None) – 连接 remote_host 时的超时时间(秒)。默认 10 秒。如果提供,则会覆盖在 ssh_conn_id 连接中预定义的 conn_timeout。
cmd_timeout (float | airflow.sdk.definitions._internal.types.ArgNotSet | None) – 执行命令的超时时间(秒)。默认 10 秒。为 None 表示不限制超时。若提供,则会覆盖在 ssh_conn_id 连接中预定义的 cmd_timeout。
keepalive_interval (int) – 每隔 keepalive_interval 秒向远程主机发送一次保活包
banner_timeout (float) – 等待服务器横幅的超时时间(秒)
disabled_algorithms (dict | None) – 将在传输期间被禁用的算法类型到算法标识符可迭代对象的映射字典
auth_timeout (int | None) – 进行远程主机认证尝试的超时时间(秒)
- get_tunnel(remote_port, remote_host='localhost', local_port=None)[source]¶
通过 SSH 连接创建本地端口转发隧道。
在概念上相当于
ssh -L <LOCAL_PORT>:<remote_host>:<REMOTE_PORT>。返回的
SSHTunnel应作为上下文管理器使用。with hook.get_tunnel(remote_port=5432) as tunnel: connect_to("localhost", tunnel.local_bind_port)
.start()/.stop()方法仍可使用,但已弃用。Changed in version 4.4.0: 返回
SSHTunnel而不是sshtunnel.SSHTunnelForwarder。隧道现在复用 Hook 的 SSH 连接(get_conn()),而不是重新建立单独的连接。- 参数:
- 返回:
SSHTunnel 实例
- 返回类型:
- class airflow.providers.ssh.hooks.ssh.SSHHookAsync(ssh_conn_id=default_conn_name, host=None, port=None, username=None, password=None, known_hosts=default_known_hosts, key_file='', passphrase='', private_key='')[source]¶
基类:
airflow.providers.common.compat.sdk.BaseHook使用 asyncssh 的异步 SSH Hook,用于触发器。
此 Hook 为可延迟(deferrable)运算符及其触发器提供异步 SSH 连接功能。
- 参数:
ssh_conn_id (str) – Airflow 连接中的 SSH 连接 ID
host (str | None) – SSH 服务器的主机名(会覆盖连接中的设置)
port (int | None) – SSH 服务器的端口(会覆盖连接中的设置)
username (str | None) – 用于认证的用户名(会覆盖连接中的设置)
password (str | None) – 用于认证的密码(会覆盖连接中的设置)
known_hosts (str) – known_hosts 文件的路径。默认值为
~/.ssh/known_hosts。key_file (str) – 用于认证的私钥文件路径
passphrase (str) – 私钥的密码短语
private_key (str) – 以字符串形式提供的私钥内容