Skip to content
janmojzisPublic

About

TinySSH is small server (less than 100000 words of code)

Resources

Stars

1.5k stars

Watchers

36 watching

Forks

Latest commit

 

History

758 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

  • tinysshd is a minimalistic SSH server which implements only a subset of SSHv2 features.
  • tinysshd supports only secure cryptography (minimum 128-bit security, protected against cache-timing attacks)
  • tinysshd doesn't implement older crypto (such as RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES, RC4, ...)
  • tinysshd doesn't implement unsafe features (such as password or hostbased authentication)
  • tinysshd doesn't have features such: SSH1 protocol, compression, port forwarding, agent forwarding, X11 forwarding ...
  • tinysshd uses fixed-size buffers for SSH packet processing. Authorization path resolution uses dynamically allocated memory, allocation failure rejects authorization.

Important change since version 20260906

Starting with version 20260906, TinySSH rejects all client-supplied environment variables (env channel requests) for security reasons. This may affect configurations using OpenSSH SendEnv or SetEnv; any required variables must be set on the server instead.

Supported SSH algorithms

Since version 20261001, TinySSH supports the following SSHv2 algorithms:

OpenSSH option Algorithms
KexAlgorithms curve25519-sha256, curve25519-sha256@libssh.org, sntrup761x25519-sha512@openssh.com, sntrup761x25519-sha512
Ciphers chacha20-poly1305@openssh.com
MACs hmac-sha2-256 (advertised for protocol compatibility; authentication is provided by the chacha20-poly1305@openssh.com AEAD cipher)
HostKeyAlgorithms ssh-ed25519

TinySSH also supports the OpenSSH strict key-exchange extension kex-strict-s-v00@openssh.com.

The curve25519-sha256 algorithms can be disabled with -S. The post-quantum sntrup761x25519-sha512@openssh.com algorithm can be disabled with -P.

Project timeline

  • 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)

Current release (20261001)

  • has 74260 words of code
  • beta release

How-to compile and install

make
sudo make install

How-to run

       mkdir -p /etc/tinyssh
       tinysshd-makekey /etc/tinyssh/sshkeydir
       TCPSERVER
              tcpserver -HRDl0 0.0.0.0 22 /usr/sbin/tinysshd -v /etc/tinyssh/sshkeydir &

       BUSYBOX
              busybox tcpsvd 0 22 tinysshd -v /etc/tinyssh/sshkeydir &

       INETD
           /etc/inetd.conf:
               ssh stream tcp nowait root /usr/sbin/tinysshd tinysshd -l -v /etc/tinyssh/sshkeydir

       SYSTEMD
           tinysshd.socket:
               [Unit]
               Description=TinySSH server socket
               ConditionPathExists=!/etc/tinyssh/disable_tinysshd

               [Socket]
               ListenStream=22
               Accept=yes

               [Install]
               WantedBy=sockets.target

           tinysshd@.service:
               [Unit]
               Description=Tiny SSH server
               After=network.target auditd.service

               [Service]
               ExecStartPre=-/usr/sbin/tinysshd-makekey -q /etc/tinyssh/sshkeydir
               EnvironmentFile=-/etc/default/tinysshd
               ExecStart=/usr/sbin/tinysshd $TINYSSHDOPTS -- /etc/tinyssh/sshkeydir
               KillMode=process
               SuccessExitStatus=111
               StandardInput=socket
               StandardError=journal

               [Install]
               WantedBy=multi-user.target

About

TinySSH is small server (less than 100000 words of code)

Resources

Stars

1.5k stars

Watchers

36 watching

Forks

Releases

Packages

Used by

Contributors

Languages