scp
scp module for paramiko
What it is and what it does
scp is a pure-Python wrapper around the SCP protocol that leverages paramiko's SSH transport to move files to and from remote hosts. It implements the protocol as used by OpenSSH's scp command, allowing you to upload, download, and recursively transfer directories over an established SSH connection.
The package is designed for straightforward file operations: you pass it a paramiko transport, call put() or get() with local and remote paths, and optionally supply a progress callback to monitor transfer status. It also supports uploading file-like objects via putfo() and works as a context manager for cleaner resource handling.
Use it for:
- Automating remote file backups or log collection from servers over SSH.
- Uploading configuration files or application binaries to remote hosts during deployment.
- Downloading results or reports from remote systems as part of a larger automation workflow.
- Transferring entire directory trees to remote systems with a single recursive call.
- Monitoring file transfer progress in long-running data migration or sync operations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides file transfer over SSH using the SCP protocol via a paramiko transport, supporting single files, directories, and file-like objects with optional progress tracking.
Yes. The package is actively maintained, has no known vulnerabilities, and solves a specific problem cleanly—file transfer over SSH without shell escaping or subprocess management. The copyleft license requires attention if you're building proprietary software, but for internal tools, automation, and open-source projects it is a straightforward dependency.
Install
scp on PyPI
pip
pip install scpuv
uv add scppoetry
poetry add scpInstalling scp
Before you install
Low install friction with a single runtime dependency on paramiko. The package is actively maintained with a recent release and has been stable since its 2013 inception.
License in practice
Licensed under LGPL-2.1-or-later (copyleft). Derivative works and modifications must be released under compatible terms; proprietary applications incorporating this code must comply with copyleft obligations.
Quickstart
from paramiko import SSHClient
from scp import SCPClient
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect('example.com')
scp = SCPClient(ssh.get_transport())
scp.put('test.txt', 'test2.txt')
scp.close()
Requires a working SSH connection via paramiko and network access to the remote host.
Verify before relying
- Whether the package supports modern SSH key types and algorithms beyond what paramiko provides.
- Performance characteristics when transferring large files or many small files.
- Compatibility with recent OpenSSH versions and non-standard SCP implementations.
Package facts
| License | LGPL-2.1-or-later (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — paramiko |
| Maintenance | actively maintained — 16 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 15,011,039/month — #1,205 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scp-0.16.1-py2.py3-none-any.whl
Keywords: paramiko, ssh, scp, transfer
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
sftprettyA Python3 wrapper around paramiko that…
permissive · top 15,000 on PyPI
jumpsshJumpSSH runs commands on remote servers through…
permissive · top 15,000 on PyPI
sshtunnelEstablishes SSH tunnels to forward local ports…
permissive · top 1,000 on PyPI
paramikoParamiko is a pure-Python SSH protocol library…
copyleft · top 1,000 on PyPI
asyncsshAsyncSSH provides an asynchronous SSH client…
copyleft · top 5,000 on PyPI
fs.sshfsfs.sshfs provides a PyFilesystem2 interface to…
copyleft · top 15,000 on PyPI
pysftppysftp provides a high-level Python interface…
permissive · top 5,000 on PyPI
python-rrmngmntManages remote Linux machines and services over…
copyleft · top 15,000 on PyPI
ftputilftputil provides a high-level FTP client…
permissive · top 15,000 on PyPI
webdavclient3Python WebDAV client library providing access…
permissive · top 15,000 on PyPI