Portable OpenSSH, the non-OpenBSD port of the SSH suite for secure remote login, command execution and file transfer on Unix-like systems.
janmojzis/tinyssh
TinySSH is a minimalistic SSHv2 server that supports only modern cryptography and omits legacy and unsafe features.
Open-source alternative to:OpenSSH
- Stars
- 1,538
- Forks
- 83
- Open issues
- 20
- Last commit
- 7 days ago
What is it?
TinySSH is a small SSH server written in C that implements a deliberately limited subset of the SSHv2 protocol. It only offers key exchange, ciphers and host keys considered secure today, such as curve25519, chacha20-poly1305 and ssh-ed25519, and it leaves out RSA, DSA, 3DES, RC4, password authentication and host-based authentication.
The server also omits features like compression, port forwarding, agent forwarding and X11 forwarding, which keeps the codebase small. It uses fixed-size buffers for packet processing, and authorization path resolution rejects access if memory allocation fails. Since version 20260906, client-supplied environment variables are rejected, so variables must be configured on the server.
The project ships tinysshd, a server daemon, and tinysshd-makekey, a tool for generating host keys. It can be run under tcpserver, busybox tcpsvd, inetd or systemd socket activation.
Key features
- 01Supports only modern algorithms such as curve25519, chacha20-poly1305 and ssh-ed25519.
- 02Includes post-quantum sntrup761x25519 key exchange, which can be disabled with a flag.
- 03Rejects password and host-based authentication and legacy ciphers.
- 04Uses fixed-size buffers for SSH packet processing.
- 05Works with tcpserver, busybox tcpsvd, inetd and systemd.
Use cases
- Running a small SSH endpoint on embedded or resource-constrained systems.
- Providing key-based remote shell access on a minimal Linux setup.
- Launching an SSH service on demand through inetd or systemd socket activation.
In collections
Topics
FAQ
- What is tinyssh?
- TinySSH is a minimalistic SSHv2 server that supports only modern cryptography and omits legacy and unsafe features. TinySSH is a small SSH server written in C that implements a deliberately limited subset of the SSHv2 protocol. It only offers key exchange, ciphers and host keys considered secure today, such as curve25519, chacha20-poly1305 and ssh-ed25519, and it leaves out RSA, DSA, 3DES, RC4, password authentication and host-based authentication.
- Is tinyssh free to use? What license does it have?
- tinyssh is open source under the Other license. Check the license terms before using it in commercial products.
- Is tinyssh still maintained?
- Actively maintained. The last commit to tinyssh was on Nov 1, 2026.
- What can I use tinyssh for?
- Running a small SSH endpoint on embedded or resource-constrained systems. Providing key-based remote shell access on a minimal Linux setup. Launching an SSH service on demand through inetd or systemd socket activation.
- Where can I get tinyssh?
- The source code and installation instructions are on GitHub: https://github.com/janmojzis/tinyssh
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
C implementation of the Tox protocol, a serverless peer-to-peer library for encrypted instant messaging built on libsodium.
A dependency-free Bash script that audits a Linux VPS for security settings, performance, and resource usage, then writes a PASS/WARN/FAIL report.
A small CLI tool that wraps any STDIN/STDOUT program as a WebSocket server, like inetd for WebSockets.
Open-source implementation of the TURN and STUN servers that relay VoIP and WebRTC media traffic through NAT and firewalls.
A Minecraft server written entirely in Rust, aiming for fast, efficient, and customizable hosting compatible with vanilla mechanics.