tinysshd(8)
β¨ tinysshd β the Tiny SSH daemon, aka the loml β¨
okay bestie, sit down, hydrate, because we're about to talk about tinysshd from the System Manager's Manual and it is literally the most unbothered little SSH server you will ever meet π
πΈ NAME πΈ
tinysshd β Tiny SSH daemon π§
π¦ SYNOPSIS π¦
tinysshd [ options ] keydir
π DESCRIPTION π
okay so tinysshd is a minimalistic SSH server that only implements a subset of SSHv2 features. that's not a bug bestie that's the whole personality π
tinysshd supports only secure cryptography (minimum 128-bit security, protected against cache-timing attacks) β no cap, it's giving locked down π
tinysshd doesn't implement older crypto (such as RSA, DSA, HMAC-MD5, HMAC-SHA1, 3DES, RC4, ...) β not me ghosting the entire legacy crypto alphabet π
tinysshd doesn't implement unsafe features (such as password or hostbased authentication) β passwords? never heard of her π
tinysshd doesn't have features such: SSH1 protocol, compression, port forwarding, agent forwarding, X11 forwarding ... β the way that it just says no to all of them, iconic honestly π
tinysshd doesn't use dynamic memory allocation (no allocation failures, etc.) β no malloc drama, no crashes, main character energy fr fr β
β¨ OPTIONS β¨
-qβ no error messages, shhh π€«-Qβ print error messages (default), the chatty one π£οΈ-vβ print extra information, spill the tea β-sβ enable state-of-the-art crypto (default) π¦- signing β
ssh-ed25519 - key-exchange β
curve25519-sha256 - symmetric β
chacha20-poly1305@openssh.com
- signing β
-Sβ disable state-of-the-art crypto π«-pβ enable post-quantum crypto (default) π- signing β
TODO(not implemented yet) π - key-exchange β
sntrup761x25519-sha512@openssh.com - symmetric β
chacha20-poly1305@openssh.com
- signing β
-Pβ disable post-quantum crypto π«-lβ usesysloginstead of standard error output (useful for running frominetd) π-Lβ don't usesyslog, use standard error output (default) π₯οΈ-x name=commandβ add subsystem command (e.g.:sftp=/usr/libexec/openssh/sftp-server) π οΈ-e commandβ execute the given command instead of spawning the shell (disables exec/subsystem channel requests) πkeydirβ directory containing TinySSH keys, typically/etc/tinyssh/sshkeydirποΈ
π AUTHORIZATION π
tinysshd supports only public-key authorization via AuthorizedKeysFile ~/.ssh/authorized_keys. Each line of the file contains one key in format "keytype base64-encoded-key comment". tinyssh supports only "ssh-ed25519" keytype. yes queen, one keytype and she's thriving π
~/.ssh/authorized_keys example:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILV5AGhGQ1QVXjBWhTKJP3vrqE3isL4ivisBailQ14gS comment
π RUNNING π
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
π SEE ALSO π
tinysshd-makekey(8), tinysshd-printkey(8)
and that's the whole page bestie, go forth and ssh responsibly π«Ά
this has been tinysshd(8) from the System Manager's Manual, and this lil sign-off comes straight from the footer β the source/version + date line, version tinysshd(8), dated at the very bottom of the original page. mwah π β¨
π¦ where this page comes from
- alpine 3.24: tinyssh-doc 20260601-r0 Β· CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- arch rolling: tinyssh 20260601-1 Β· CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- debian bookworm: tinysshd 20230101-1 Β· CC0-1.0
- debian trixie: tinysshd 20250501-1 Β· CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- nixos 26.05: tinyssh 20260401
- nixpkgs unstable: tinyssh 20260601
- opensuse-leap 16.0: tinyssh 20240101-bp160.1.12 Β· CC0-1.0
- opensuse-leap 16.0: tinyssh 20240101-bp160.1.12 Β· CC0-1.0
- opensuse-leap 16.0: tinyssh 20240101-bp160.1.12 Β· CC0-1.0
- opensuse-leap 16.0: tinyssh 20240101-bp160.1.12 Β· CC0-1.0
- ubuntu noble: tinysshd 20240101-2 Β· CC0-1.0
- ubuntu questing: tinysshd 20250501-1
- ubuntu resolute: tinysshd 20250501-2 Β· CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- ubuntu stonking: tinysshd 20260601-1 Β· CC0-1.0 OR 0BSD OR MIT-0 OR MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms