sftpserver
sftpserver - a simple single-threaded sftp server
What it is and what it does
sftpserver is a minimal SFTP server implementation designed as a testing stub rather than a production service. It wraps Paramiko's SFTPServer to provide a simple command-line tool that listens on a configurable host and port, accepts SSH key authentication, and serves files from the local filesystem. The package is intended for developers who need to test SFTP client code without setting up a real SFTP server.
The server runs single-threaded and is configured via command-line flags: you specify a private key file, optional host and port, and debug logging level. It accepts connections from Paramiko clients using RSA key authentication and allows standard SFTP operations like listing and transferring files. Because it is abandoned (last release 2017, last commit 2020), it carries risk of incompatibility with modern Python or Paramiko versions.
Use it for:
- Unit testing SFTP client code without deploying a real SFTP server.
- Stubbing SFTP endpoints in integration tests for Python applications.
- Local development and debugging of SFTP client implementations.
- Mocking SFTP server behavior in CI/CD pipelines for client testing.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a simple single-threaded SFTP server built on Paramiko for testing Python SFTP clients without needing a full production server.
No—install only for legacy projects already using it. The package is abandoned (last update 2017) with no Python version guarantee, making it unsuitable for new development. Modern alternatives or a maintained SFTP testing library are strongly preferred.
Install
sftpserver on PyPI
pip
pip install sftpserveruv
uv add sftpserverpoetry
poetry add sftpserverInstalling sftpserver
Before you install
Installation is straightforward with low friction, but the package is abandoned—last release was in 2017 and last commit in 2020. No updates for several years means it may not work with modern Python versions or security patches.
License in practice
MIT license is permissive, allowing use in commercial and private projects with minimal restrictions; you must include a copy of the license.
Quickstart
pip install sftpserver
# Generate a test key:
# openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout /tmp/test_rsa.key
# Start server:
# sftpserver -k /tmp/test_rsa.key
# Connect with paramiko:
import paramiko
pkey = paramiko.RSAKey.from_private_key_file('/tmp/test_rsa.key')
transport = paramiko.Transport(('localhost', 3373))
transport.connect(username='admin', password='admin', pkey=pkey)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.listdir('.')
Requires a private key file (RSA format) and openssl to generate test keys; Python version compatibility unspecified and likely limited given abandonment.
Verify before relying
- Whether the package works with Python versions released after 2017 or modern Paramiko versions.
- Whether security issues in Paramiko or underlying dependencies have been addressed in sftpserver.
- Whether the single-threaded design meets performance needs for your test scenarios.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — paramiko, setuptools |
| Maintenance | abandoned — 3,414 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 237,488/month — #8,957 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sftpserver-0.3-py2.py3-none-any.whl
Tags
More File Transfer Protocol (FTP) packages
PycURL is a Python wrapper around libcurl that…
unclear · top 5,000 on PyPI
tuspyA Python client for uploading files to servers…
permissive · top 5,000 on PyPI
ftputilftputil provides a high-level FTP client…
permissive · top 15,000 on PyPI
pyftpdlibBuilds asynchronous FTP servers in Python with…
unclear · top 15,000 on PyPI
aioftpaioftp provides an async FTP client and server…
permissive · top 15,000 on PyPI
mechanizeAutomate programmatic interaction with HTTP web…
permissive · top 15,000 on PyPI
pytest-sftpserverA pytest plugin that provides a fixture for…
permissive · top 5,000 on PyPI
mocksftpProvides an in-process SFTP server for testing…
permissive · top 15,000 on PyPI
mock-ssh-serverProvides a Python context manager that runs an…
permissive · top 15,000 on PyPI
sftprettyA Python3 wrapper around paramiko that…
permissive · top 15,000 on PyPI
pysftppysftp provides a high-level Python interface…
permissive · top 5,000 on PyPI
fs.sshfsfs.sshfs provides a PyFilesystem2 interface to…
copyleft · top 15,000 on PyPI
sshfsProvides an fsspec-compatible filesystem…
permissive · top 5,000 on PyPI
scpProvides file transfer over SSH using the SCP…
copyleft · top 5,000 on PyPI
sshtunnelEstablishes SSH tunnels to forward local ports…
permissive · top 1,000 on PyPI
pip-install-testA minimal stub package that verifies pip can…
permissive · top 15,000 on PyPI