Introduction

TinySSH is a minimalistic SSH server which implements only a subset of SSHv2 features.

Twitter: @tinyssh

Github: https://github.com/janmojzis/tinyssh

Features

easy auditable - TinySSH has less than 100000 words of code

no dynamic memory allocation - TinySSH has all memory statically allocated (less than 1MB)

simple configuration - TinySSH can’t be misconfigured

reusing code - TinySSH is reusing libraries from CurveCP implementation

reusing software - TinySSH is using tcpserver/systemd socket/inetd for TCP connection

limited amount of features - TinySSH doesn’t have features such: SSH1 protocol, compression, …

no older cryptographic primitives - rsa, dsa, classic diffie-hellman, hmac-md5, hmac-sha1, 3des, arcfour, …

no copyright restrictions - TinySSH is in the public domain (see the licence)

no dependency on OpenSSL - TinySSH has its own crypto library compatible with NaCl, Libsodium

speed - TinySSH can be also compiled using high-speed NaCl library instead of internal.

Security features

cryptographic library (minimum 128-bit security, side-channel attack resistant, state-of-the-art crypto, …)

public-key authentication only (no password or hostbased authentication)

Crypto primitives

State-of-the-art crypto: ssh-ed25519, curve25519-sha256@libssh.org, chacha20-poly1305@openssh.com

Older standard: ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256 removed in version 20190101

removed in version 20190101 Postquantum crypto: sntrup4591761x25519-sha512@tinyssh.org, chacha20-poly1305@openssh.com

Project timelime

experimental: 2014.01.01 - 2014.12.31 (experimentation)

alpha(updated): 2015.01.01 - 2017.12.31 (not ready for production use, ready for testing)

beta(updated): 2018.01.01 - ????.??.?? (ready for production use)

stable: expected ????.??.?? - (ready for production use - including post-quantum crypto)

Acknowledgments

TinySSH can be compiled using primitives from NaCl library tnx Tanja Lange, Daniel J. Bernstein and Peter Schwabe

TinySSH uses curve25519-sha256@libssh.org introduced by libssh.org thx libssh.org developers

TinySSH uses ssh-ed25519/chacha20-poly1305@openssh.com introduced by OpenSSH thx OpenSSH developers

Current release (20190101)