NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1410 most downloaded on PyPI
Provider package apache-airflow-providers-ssh for Apache Airflow
Last release 5 days ago
29 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
132 releases · first in 2020
One column per quarter.
- Template every connection id accepted by provider operators
Release Date: 2026-09-29
Template every connection id accepted by provider operators (#73286)
Template every connection id accepted by provider operators (#73286)
Nothing published for this version
- Fix SSHRemoteJobOperator cleanup failing with custom remote_base_dir
Release Date: 2026-08-08
Fix SSHRemoteJobOperator cleanup failing with custom remote_base_dir (#69885)
Quote remote job paths in posix ssh command builders (#70091)
Keep SSH remote job running when its PTY session hangs up (#70573)
Fix template-field validation timing in ssh provider operators (#70315)
Support Paramiko 5 (#69712)
Fix SSHRemoteJobOperator cleanup failing with custom remote_base_dir (#69885)
Quote remote job paths in posix ssh command builders (#70091)
Keep SSH remote job running when its PTY session hangs up (#70573)
Fix template-field validation timing in ssh provider operators (#70315)
Support Paramiko 5 (#69712)
Nothing published for this version
Nothing published for this version
- Bump minimum paramiko to 4.0.0; DSA/DSS private keys and ssh-dss host keys are no longer supported
Release Date: 2026-07-28
Bump minimum paramiko to 4.0.0; DSA/DSS private keys and ssh-dss host keys are no longer supported (#69669)
Paramiko 4.0 removed DSS/DSA support; see paramiko changelog for upstream details. If you use a DSA private key in an SSH connection, generate a new key (for example ssh-keygen -t ed25519 or -t rsa ), install the public key on the server, and point your Airflow connection at the new key file or private_key extra. If you pin the remote host with a host_key extra in ssh-dss form, obtain the server’s current RSA, ECDSA, or Ed25519 host key and replace the value. The same constraints apply to SFTP connections that rely on paramiko via the SSH provider.
Fix SSHRemoteJobOperator still orphaning the remote job on cancellation (#69490)
Bump minimum paramiko to 4.0.0; DSA/DSS private keys and ssh-dss host keys are no longer supported (#69669)
Paramiko 4.0 removed DSS/DSA support; see paramiko changelog for upstream details. If you use a DSA private key in an SSH connection, generate a new key (for example ssh-keygen -t ed25519 or -t rsa), install the public key on the server, and point your Airflow connection at the new key file or private_key extra. If you pin the remote host with a host_key extra in ssh-dss form, obtain the server's current RSA, ECDSA, or Ed25519 host key and replace the value. The same constraints apply to SFTP connections that rely on paramiko via the SSH provider.
Fix SSHRemoteJobOperator still orphaning the remote job on cancellation (#69490)
Nothing published for this version
- Fix 'SSHRemoteJobOperator' orphaning the remote job on cancellation
Release Date: 2026-07-10
Fix 'SSHRemoteJobOperator' orphaning the remote job on cancellation (#68644)
Fix 'SSHRemoteJobOperator' orphaning the remote job on cancellation (#68644)
Nothing published for this version
- Reduce SSH connection churn in 'SSHRemoteJobOperator' under high fan-out
Release Date: 2026-06-22
Reduce SSH connection churn in 'SSHRemoteJobOperator' under high fan-out (#68115)
Reduce SSH connection churn in 'SSHRemoteJobOperator' under high fan-out (#68115)
Nothing published for this version
- Use contextlib.suppress instead of try-except-pass in providers
Release Date: 2026-05-23
Use contextlib.suppress instead of try-except-pass in providers (#66178)
Use contextlib.suppress instead of try-except-pass in providers (#66178)
Nothing published for this version
- Bump paramiko lower bound to >=3.5.1 due to adding Vespa provider
Release Date: 2026-04-26
Bump paramiko lower bound to >=3.5.1 due to adding Vespa provider (#63988)
Bump paramiko lower bound to >=3.5.1 due to adding Vespa provider (#63988)
Nothing published for this version
The details and suggestion of the code changes are explained by the deprecation/ errors when the properties are used.
Release Date: 2026-04-12
Replace 'sshtunnel' with native paramiko/asyncssh tunneling (#64299)
With this change we provide minimal backward compatibility shim, Rather than fully re-implementing SSHTunnelForwarder’s API surface. While most of the usages of the get_tunnel() method in the codebase should work without modifications - some of the more advanced use cases might require code changes, user need to inspect changes between the old SSHTunnelForwarder and SSHTunnel class if they used advanced featured of the forwarder.
The details and suggestion of the code changes are explained by the deprecation/ errors when the properties are used.
The SSHTunnel provides:
Context manager (enter/exit) - the recommended interface
.start()/.stop() - deprecated, emit AirflowProviderDeprecationWarning
.local_bind_port and .local_bind_address - preserved as properties
getattr - raises AttributeError with migration hint for
SSHTunnelForwarder-specific attributes (e.g., tunnel_is_up, ssh_host)
AsyncSSHTunnel is a thin wrapper that:
Manages the lifecycle (listener + SSH connection cleanup in aexit )
Exposes .local_bind_port via listener.get_port()
Handles cleanup on aenter failure (closes SSH connection if forward_local_port raises)
Follows the async with await hook.get_tunnel(…) pattern
Eager socket binding in constructor
Fix SSHHookAsync defaulting no_host_key_check to False unlike SSHHook (#64225)
Load hook metadata from YAML without importing Hook class (#63826)
Nothing published for this version
Release Date: 2026-03-28 ### Misc - Add Python 3.14 Support
Release Date: 2026-03-28
Add Python 3.14 Support (#63520)
Nothing published for this version
- Bump minimum cryptography to 44.0.3 and paramiko to 3.4.0
Release Date: 2026-03-13
Bump minimum cryptography to 44.0.3 and paramiko to 3.4.0 (#62723)
Bump minimum cryptography to 44.0.3 and paramiko to 3.4.0 (#62723)
Nothing published for this version
- Use common provider's get_async_connection in other providers
Release Date: 2026-02-02
Use common provider's get_async_connection in other providers (#56791)
Use common provider's get_async_connection in other providers (#56791)
Nothing published for this version
- Add ''SSHRemoteJobOperator'' for resilient remote job execution
Release Date: 2026-01-17
Add ''SSHRemoteJobOperator'' for resilient remote job execution (#60297)
New year means updated Copyright notices (#60344)
Migrate ssh provider to use airflow.sdk.configuration.conf (#59981)
Add ''SSHRemoteJobOperator'' for resilient remote job execution (#60297)
New year means updated Copyright notices (#60344)
Migrate ssh provider to use airflow.sdk.configuration.conf (#59981)
Nothing published for this version
- Add backcompat for exceptions in providers
Release Date: 2025-12-13
Add backcompat for exceptions in providers (#58727)
Nothing published for this version
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/a
Release Date: 2025-12-02
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers >_.
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Remove SDK reference for NOTSET in Airflow Core (#58258)
Fix lower bound dependency to common-compat provider (#58833)
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Remove SDK reference for NOTSET in Airflow Core (#58258)
Fix lower bound dependency to common-compat provider (#58833)
Nothing published for this version
Nothing published for this version
- Convert all airflow distributions to be compliant with ASF requirements
Release Date: 2025-11-17
Convert all airflow distributions to be compliant with ASF requirements (#58138)
[Doc] Fixing some typos and spelling errors (#57225)
Fixing some typos and spelling errors (#57186)
Convert all airflow distributions to be compliant with ASF requirements (#58138)
[Doc] Fixing some typos and spelling errors (#57225)
Fixing some typos and spelling errors (#57186)
Nothing published for this version
- Pass required remote_host arg to SSHHook
Release Date: 2025-10-26
Pass required remote_host arg to SSHHook (#55664)
Migrate ssh provider to ''common.compat'' (#57004)
Remove placeholder Release Date in changelog and index files (#56056)
Pass required remote_host arg to SSHHook (#55664)
Migrate ssh provider to ''common.compat'' (#57004)
Remove placeholder Release Date in changelog and index files (#56056)
Nothing published for this version
- Switch all airflow logging to structlog
Release Date: 2025-09-22
Switch all airflow logging to structlog (#52651)
Nothing published for this version
- Limit paramiko to '< 4.0.0' till we remove DSS support
Release Date: 2025-08-11
Limit paramiko to '< 4.0.0' till we remove DSS support (#54078)
Nothing published for this version
- Add Python 3.13 support for Airflow.
Release Date: 2025-08-02
Add Python 3.13 support for Airflow. (#46891)
Remove type ignore across codebase after mypy upgrade (#53243)
Cleanup type ignores in ssh provider where possible (#53257)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move all BaseHook usages in providers to version_compat in ssh (#52780)
Add Python 3.13 support for Airflow. (#46891)
Remove type ignore across codebase after mypy upgrade (#53243)
Cleanup type ignores in ssh provider where possible (#53257)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move all BaseHook usages in providers to version_compat in ssh (#52780)
Nothing published for this version
- Move 'BaseHook' implementation to task SDK
Release Date: 2025-07-06
Move 'BaseHook' implementation to task SDK (#51873)
Provider Migration: Replace 'BaseOperator' to Task SDK for 'ssh' (#52558)
Drop support for Python 3.9 (#52072)
Move 'BaseHook' implementation to task SDK (#51873)
Provider Migration: Replace 'BaseOperator' to Task SDK for 'ssh' (#52558)
Drop support for Python 3.9 (#52072)
Nothing published for this version
This release of provider is only available for Airflow 2.10+ as explained in the Apache Airflow providers support policy < https://github.com/apache/a
Release Date: 2025-05-18
Note
This release of provider is only available for Airflow 2.10+ as explained in the Apache Airflow providers support policy < https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers >_.
Bump min Airflow version in providers to 2.10 (#49843)
Note
This release of provider is only available for Airflow 2.10+ as explained in the Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
Bump min Airflow version in providers to 2.10 (#49843)
Nothing published for this version
- Make command for replacing newlines with literals '\n' in 'SSHOperator'connection MacOs/Linux compatible
Release Date: 2025-03-13
Make command for replacing newlines with literals '\n' in 'SSHOperator'connection MacOs/Linux compatible (#47491)
Upgrade flit to 3.11.0 (#46938)
Make command for replacing newlines with literals '\n' in 'SSHOperator'connection MacOs/Linux compatible (#47491)
Upgrade flit to 3.11.0 (#46938)
Nothing published for this version
All deprecated classes, parameters and features have been removed from the SSH provider package. The following breaking changes were introduced:
Release Date: 2024-12-26
Note
This release of provider is only available for Airflow 2.9+ as explained in the Apache Airflow providers support policy .
Warning
All deprecated classes, parameters and features have been removed from the SSH provider package. The following breaking changes were introduced:
Remove attribute timeout from airflow.providers.ssh.hooks.ssh.SSHHook . Use parameter conn_timeout instead.
The context manager of SSHHook is deprecated. Please use get_conn() as a context manager instead.
SSHHook.create_tunnel() is deprecated, Please use get_tunnel() instead. But please note that the order of the parameters have changed.
The deprecated get_hook() method is removed in airflow.providers.ssh.operators.ssh.SSHOperator . Please use hook attribute instead.
Deprecated exec_ssh_client_command() method on SSHOperator is removed, call ssh_hook.exec_ssh_client_command() instead
Remove Provider Deprecations in SSH (#44544)
Add host_proxy_cmd parameter to SSHHook and SFTPHook (#44565)
Bump minimum Airflow version in providers to Airflow 2.9.0 (#44956)
Remove XCom pickling (#43905)
Note
This release of provider is only available for Airflow 2.9+ as explained in the Apache Airflow providers support policy.
Warning
All deprecated classes, parameters and features have been removed from the SSH provider package. The following breaking changes were introduced:
Remove attribute timeout from airflow.providers.ssh.hooks.ssh.SSHHook. Use parameter conn_timeout instead.
The context manager of SSHHook is deprecated. Please use get_conn() as a context manager instead.
SSHHook.create_tunnel() is deprecated, Please use get_tunnel() instead. But please note that the order of the parameters have changed.
The deprecated get_hook() method is removed in airflow.providers.ssh.operators.ssh.SSHOperator. Please use hook attribute instead.
Deprecated exec_ssh_client_command() method on SSHOperator is removed, call ssh_hook.exec_ssh_client_command() instead
Remove Provider Deprecations in SSH (#44544)
Add host_proxy_cmd parameter to SSHHook and SFTPHook (#44565)
Bump minimum Airflow version in providers to Airflow 2.9.0 (#44956)
Remove XCom pickling (#43905)
Nothing published for this version
Nothing published for this version
- SSHHook expose auth_timeout parameter
Release Date: 2024-10-31
SSHHook expose auth_timeout parameter (#43048)
Nothing published for this version
- SSHHook: check if existing connection is still alive
Release Date: 2024-08-28
SSHHook: check if existing connection is still alive (#41061)
Nothing published for this version
This release of provider is only available for Airflow 2.8+ as explained in the Apache Airflow providers support policy .
Release Date: 2024-08-22
Note
This release of provider is only available for Airflow 2.8+ as explained in the Apache Airflow providers support policy .
Bump minimum Airflow version in providers to Airflow 2.8.0 (#41396)
Note
This release of provider is only available for Airflow 2.8+ as explained in the Apache Airflow providers support policy.
Bump minimum Airflow version in providers to Airflow 2.8.0 (#41396)
Nothing published for this version
Release Date: 2024-08-06 ### Features - Add on kill to ssh
Release Date: 2024-08-06
Add on kill to ssh (#40377)
Nothing published for this version
- implement per-provider tests with lowest-direct dependency resolution
Release Date: 2024-06-27
implement per-provider tests with lowest-direct dependency resolution (#39946)
Nothing published for this version
- Faster 'airflow_version' imports
Release Date: 2024-05-30
Faster 'airflow_version' imports (#39552)
Simplify 'airflow_version' imports (#39497)
Faster 'airflow_version' imports (#39552)
Simplify 'airflow_version' imports (#39497)
Your coding agent can read these notes before it upgrades. Set up the MCP server →