sftpserver
is a simple single-threaded SFTP server based on
Paramiko's SFTPServer.
I needed a simple server that could be used as a stub for testing Python SFTP clients so I whipped out one.
Using pip
:
$ [sudo] pip install sftpserver
$ sftpserver Usage: sftpserver [options] -k/--keyfile should be specified Options: -h, --help show this help message and exit --host=HOST listen on HOST [default: localhost] -p PORT, --port=PORT listen on PORT [default: 3373] -l LEVEL, --level=LEVEL Debug level: WARNING, INFO, DEBUG [default: INFO] -k FILE, --keyfile=FILE Path to private key, for example /tmp/test_rsa.key $ sftpserver -k /tmp/test_rsa.key -l DEBUG
Generating a test private key:
$ openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout /tmp/test_rsa.key
Connecting with a Python client to our server:
>>> 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('.')
['loop.py', 'stub_sftp.py']