https://github.com/janmojzis/tinyssh Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} janmojzis / tinyssh Public * Notifications * Fork 67 * Star 1.2k * TinySSH is small server (less than 100000 words of code) License CC0-1.0 license 1.2k stars 67 forks Branches Tags Activity Star Notifications * Code * Issues 12 * Pull requests 2 * Actions * Projects 0 * Wiki * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights janmojzis/tinyssh This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 393 Commits _tinyssh _tinyssh crypto-tests crypto-tests crypto crypto man man sysdep sysdep tinyssh-tests tinyssh-tests tinyssh tinyssh tools tools .gitignore .gitignore INSTALL INSTALL LICENCE LICENCE Makefile Makefile README.md README.md conf-ar conf-ar conf-bin conf-bin conf-cc conf-cc conf-cflags conf-cflags conf-libs conf-libs conf-man conf-man make-install.sh make-install.sh make-tinyssh.sh make-tinyssh.sh make-tinysshcc.sh make-tinysshcc.sh View all files Repository files navigation * README * CC0-1.0 license 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 doesn't use dynamic memory allocation (no allocation failures, etc.) Crypto primitives * State-of-the-art crypto: ssh-ed25519, curve25519-sha256, chacha20-poly1305@openssh.com * Older standard: [S:ecdsa-sha2-nistp256, ecdh-sha2-nistp256, aes256-ctr, hmac-sha2-256:S] removed in version 20190101 * Postquantum crypto: sntrup761x25519-sha512@openssh.com, chacha20-poly1305@openssh.com Project timelime * [S:experimental: 2014.01.01 - 2014.12.31 (experimentation):S] * [S:alpha(updated): 2015.01.01 - 2017.12.31 (not ready for production use, ready for testing):S] * beta(updated): 2018.01.01 - ????.??.?? (ready for production use) * stable: expected ????.??.?? - (ready for production use - including post-quantum crypto) Current release (20240101) * has 63899 words of code * beta release How-to run 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 Readme License CC0-1.0 license Activity Stars 1.2k stars Watchers 41 watching Forks 67 forks Report repository Releases 25 20240101 Latest Jan 1, 2024 + 24 releases Packages 0 No packages published Contributors 10 * * * * * * * * * * Languages * C 93.6% * Shell 4.5% * Python 1.9% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.