skillfed

scp

scp module for paramiko

scp v0.16.1 15.0M downloads/30d#1,205 on PyPI555
Copyleft license LGPL-2.1-or-later Active released

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 scp

uv

uv add scp

poetry

poetry add scp

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Topic :: Internet

Tags

scp file transfer sshparamiko scp clientssh file upload downloadremote file transfer pythonscp protocol implementationssh secure copyfile transfer over ssh
ssh-file-transferparamiko-wrapper

More Internet packages