A small, production-oriented SSH daemon implemented with Paramiko.
Project description
py-simple-sshd
py-simple-sshd is a compact SSH daemon implemented with Paramiko. It is meant
for cases where you need an embeddable, cross-platform SSH entry point that can
launch a configured local shell after public-key or password-file authentication.
Installation
pip install py-simple-sshd
Usage
simple-sshd \
--host 0.0.0.0 \
--port 2222 \
--shell /bin/bash \
--authorized-keys /etc/simple-sshd/authorized_keys
Use --root when the daemon and the shells it starts should run with
administrator/root privileges:
simple-sshd --root --host 0.0.0.0 --port 22 --shell /bin/bash --authorized-keys /etc/simple-sshd/authorized_keys
On Windows, errors printed in the elevated --root console pause briefly before
exit so the message remains visible.
simple-sshd is always single-user. Without --root, clients must authenticate
as the current operating-system username. With --root, clients must
authenticate as root on every platform, including Windows.
Password authentication is disabled unless --password-file is provided:
simple-sshd \
--host 127.0.0.1 \
--port 2222 \
--shell /bin/bash \
--authorized-keys ~/.ssh/authorized_keys \
--password-file /etc/simple-sshd/password.txt
When both --authorized-keys and --password-file are configured, clients can
authenticate with either a listed public key or the password read from the file.
If --password-file is omitted, only public-key authentication is available.
On Windows, use a Windows shell path such as:
simple-sshd --host 127.0.0.1 --port 2222 --shell C:\Windows\System32\cmd.exe --password-file .\password.txt
Options
--host: address to bind, default127.0.0.1--port: TCP port to bind, default2222--shell: shell executable launched for authenticated sessions--authorized-keys: OpenSSHauthorized_keysfile for public-key auth--password-file: text file whose content is accepted as the SSH password--host-key: private SSH host key; generated under~/.simple-sshdif omitted--root: relaunch the daemon with administrator/root privileges before serving--log-level:DEBUG,INFO,WARNING,ERROR, orCRITICAL--log-file: persistent log file, default~/.simple-sshd/simple-sshd.log
Notes
- Password files are read as UTF-8 text. Trailing line endings are removed, while other whitespace is preserved.
- Host keys are persistent by default so clients can verify the server identity.
- Runtime listener, client, and channel errors are logged and isolated so one failing connection does not stop the daemon.
- The daemon rejects authentication attempts for any username other than its configured single login name.
- ANSI/VT escape sequences, including color, bold, cursor movement, clear-screen
commands, and raw ESC input, are forwarded through the SSH channel. PTY
sessions set
TERMfrom the client's pty request so terminal-aware programs can enable their normal ANSI behavior. - POSIX systems use a real pty for terminal sessions. Windows terminal sessions
use
pywinpty; non-pty sessions use standard process pipes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_simple_sshd-0.1.9.tar.gz.
File metadata
- Download URL: py_simple_sshd-0.1.9.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a0dd02eaa1fc7feedaee2e0664db52f3c983c6922fc9d164b21b46a24058669
|
|
| MD5 |
e7f59764d3ed38a8b794045237e145e4
|
|
| BLAKE2b-256 |
2a601fba2fa305e30237fc5fcf8d485aaaa516b321e4cbb2ca8df6512c66527b
|
File details
Details for the file py_simple_sshd-0.1.9-py3-none-any.whl.
File metadata
- Download URL: py_simple_sshd-0.1.9-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.11.15 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a151145f335af2b2571630129db93e28a80e031e76e492dbb6311ad93db4a2d
|
|
| MD5 |
fe8e281d0aa43f559bd79a4d63c7cec6
|
|
| BLAKE2b-256 |
629112b7c2575d44eff020d05317f2ebe98bea44c12a20d7124722054735aaa3
|