macOS
brew install endlesshlocal Homebrew formula metadata
brew
SSH tarpit that slowly sends an endless banner. Version 1.1 via Homebrew; verified from local package data.
install
brew install endlesshlocal Homebrew formula metadata
sudo apk add endlesshAlpine Linux edge package indexes · endlessh · source: dl-cdn.alpinelinux.org
sudo apt install endlesshDebian stable package indexes · endlessh · source: deb.debian.org
sudo dnf install endlesshFedora Rawhide package metadata · endlessh · source: dl.fedoraproject.org
nix profile install nixpkgs#endlesshnixpkgs package indexes · pkgs/by-name/en/endlessh/package.nix · source: api.github.com
overview
SSH tarpit that slowly sends an endless banner
history
Endlessh is an SSH tarpit: it accepts SSH connections and slowly sends an endless, random pre-authentication banner so automated clients remain tied up for a long time. Its purpose is to move the real SSH daemon elsewhere and let noisy scanners waste time on port 22.
The author introduced Endlessh publicly in March 2019 as a small C program that exploits the SSH identification-banner phase before cryptographic negotiation. Because the tarpit happens before key exchange, the README notes that Endlessh needs no cryptographic libraries.
The implementation was intentionally simple and portable: a single-threaded C server using `poll()` to handle many delayed clients. The project blog describes this as a resource-minimizing design, trading maximum platform-specific efficiency for low memory use and broad Unix portability.
Endlessh became a recognizable defensive toy-tool because it addresses a universal server-owner annoyance: constant automated SSH probing. The launch article notes discussion on Hacker News and Reddit and describes real deployments with many trapped clients.
Its adoption niche is operational rather than cryptographic. Users generally run it on the public SSH port, move real SSH to another port, and tune delay, banner length, client limit, logging, and bind family through command-line flags or `/etc/endlessh/config`.
The default command listens on port 2222, with a 10-second delay between banner lines and a default maximum of 4096 clients. The README and man page document flags for IPv4 or IPv6 binding, delay, config file, max line length, max clients, port, syslog, and verbosity.
A sample configuration file uses OpenSSH-like syntax with `Port`, `Delay`, `MaxLineLength`, `MaxClients`, `LogLevel`, and `BindFamily`. Signals are also part of normal operation: SIGTERM shuts down cleanly, SIGHUP reloads configuration, and SIGUSR1 prints connection statistics.
Endlessh is package-nerd significant because it is tiny, dependency-light security plumbing with a clear daemon shape. It is easy to package, easy to supervise, and easy to understand from its man page, yet it changes the economics of commodity SSH scanning.
It is also a good example of a Unix package whose README is effectively the operational model: one binary, one config file, no keys, no crypto, and behavior controlled by conventional flags and signals.
security posture
broad file, network, media, or database tool signal.
blue risk · medium confidence · tool
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
/etc/endlessh/configexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
endlessh | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/skeeto/endlessh
install metadata
| Package key | brew:endlessh |
|---|---|
| Version | 1.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/endlessh |
| Homepage | https://github.com/skeeto/endlessh |
| Repository | https://github.com/skeeto/endlessh |
| Upstream docs | https://github.com/skeeto/endlessh#readme |
| License | Unlicense |
| Source archive | https://github.com/skeeto/endlessh/archive/refs/tags/1.1.tar.gz |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | endlessh |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
endlessh 1.1-5.1
SSH tarpit that slowly sends an endless connection banner
https://github.com/skeeto/endlessh
sudo apt install endlesshendlessh
nix profile install nixpkgs#endlesshendlessh 1.1-5
SSH tarpit that slowly sends an endless connection banner
https://github.com/skeeto/endlessh
sudo apt install endlesshendlessh 1.1-r2
SSH tarpit that very slowly sends an endless, random SSH banner
https://github.com/skeeto/endlessh
sudo apk add endlesshendlessh-doc 1.1-r2
SSH tarpit that very slowly sends an endless, random SSH banner (documentation)
https://github.com/skeeto/endlessh
sudo apk add endlessh-docendlessh 1.1-16.fc44
SSH tarpit that slowly sends an endless banner
https://github.com/skeeto/endlessh
sudo dnf install endlesshsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.