# Deprecation notice: Paramiko Deprecated for \`network\_cli\`: Migrate to libssh (\`ansible-pylibssh\`)

**URL:** <https://forum.ansible.com/t/deprecation-notice-paramiko-deprecated-for-network-cli-migrate-to-libssh-ansible-pylibssh/45782>\
**Category:** Get Help\
**Tags:** network\
**Created:** [May 8, 2026, 6:41am UTC](https://forum.ansible.com/t/deprecation-notice-paramiko-deprecated-for-network-cli-migrate-to-libssh-ansible-pylibssh/45782 "2026-05-08T06:41:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![komal](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/komal/32/9265_2.png) [@komal](https://forum.ansible.com/u/komal)\
**Post date:** [May 8, 2026, 6:41am UTC](https://forum.ansible.com/t/deprecation-notice-paramiko-deprecated-for-network-cli-migrate-to-libssh-ansible-pylibssh/45782/1 "2026-05-08T06:41:59Z")

</div>

## Why we are doing this

Paramiko is on a [long-term deprecation path in the Ansible ecosystem](https://forum.ansible.com/t/future-of-the-deprecated-paramiko-connection-plugin/45376). Ansible’s direction for SSH connectivity is OpenSSH / libssh, not Paramiko. For network automation (network\_cli), the supported path is ansible-pylibssh (libssh), with better alignment to that direction for security, maintenance, and feature development.

## What we changed

- Paramiko support has been consolidated into ansible.netcommon (instead of carrying the same assumptions in ansible-core), and Paramiko has been marked deprecated in **ansible.netcommon v8.5.0** and will be removed in a release after **2028-02-01**.Users will see a deprecation warning during playbook execution if they are still using Paramiko as their SSH transport.
- network\_cli has standardized on libssh via ansible-pylibssh, including areas like file copy workflows that depend on the SSH transport.
- Related defaults and behavior in ansible.netcommon have been updated so libssh is the practical default for new deployments.

## What you should do now

1. **Prefer libssh for network\_cli** : Install ansible-pylibssh and configure your playbooks / inventory / ansible.netcommon settings to use ssh\_type: libssh (see the documentation for your Ansible major version and installed collection versions).
2. **If you still rely on Paramiko:** Paramiko support in network\_cli will be removed any time after **2028-02-01**. Please plan and migrate to libssh at the earliest. Refer to the [migration docs](https://forum.ansible.com/t/migrating-to-ssh-type-libssh-for-ansible-netcommon-network-cli-across-ansible-networking-collections/45780).

For questions, use community forum for the products you run, and include:

- Ansible version
- ansible.netcommon version
- ansible-pylibssh version
- relevant collection versions
- platform/OS details

For any issues while using ssh\_type=libssh, you can open a GitHub issue on the relevant repository:

- [ansible.netcommon](https://github.com/ansible-collections/ansible.netcommon/issues) (`connection plugins`, `net_put`, `net_get`, `cli_command`, `cli_config`)
- [ansible-pylibssh](https://github.com/ansible/pylibssh/issues) (SSH library itself, connection failures, key exchange, SFTP/SCP)
