Freedom251 › Honeypot Software
Endlessh

What Endlessh is
Endlessh is a self-hosted SSH tarpit for Linux that keeps unwanted SSH clients occupied by slowly sending random banner text. The project describes placing a real SSH server on another port so clients connecting to the tarpit remain there instead. Endlessh is a standalone, single-threaded C program that uses poll() to handle multiple clients. Since its banner is sent before cryptographic exchange, it does not depend on cryptographic libraries.
By default, messages are spaced 10000 milliseconds apart, banner lines are limited to 32 characters, and up to 4096 clients can connect; excess connections wait in a queue. It supports IPv4 and IPv6, with options to bind to one address family. Diagnostics are quiet by default, while repeatable verbosity flags enable standard or debug logging and logs can go to syslog. Configuration syntax is similar to OpenSSH, with a default file at /etc/endlessh/config. SIGTERM shuts down the daemon gracefully, SIGHUP reloads configuration and SIGUSR1 logs connection statistics. The repository identifies the license as the Unlicense.
Who it suits
Endlessh may suit Linux operators who want to divert unwanted SSH clients to a self-hosted tarpit while keeping a real SSH server on another port. It is a network decoy, not a credential lure.
What it does well
- Free and identified as open source.
- Supports IPv4 and IPv6.
- Allows up to 4096 clients by default.
- Can send logs to syslog.
- Configuration can be reloaded with SIGHUP.
What to know first
- Linux and self-hosted platforms are listed.
- Excess connections wait in the queue.
- Maximum banner line length defaults to 32 characters.
Limits
The free plan defaults to a maximum of 4,096 clients; excess connections wait in the queue. Its default banner interval is 10,000 milliseconds and its default maximum line length is 32 characters.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Endlessh | SSH tarpit · standalone C program · maximum 4096 clients by default | Free |
As github.com lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Open the project repository at https://github.com/skeeto/endlessh.
- Use the project's documented build adjustments for your platform; Linux is listed as a supported platform.
- Configure the daemon using syntax similar to OpenSSH; the default configuration file is /etc/endlessh/config.
- Set the desired network address family, banner interval, line length, and client limit.
- Run Endlessh as a self-hosted service and place a real SSH server on another port.
- Use verbosity flags or syslog if you want diagnostics.
Overview
Endlessh is a free, self-hosted SSH tarpit for Linux that holds unwanted SSH clients by sending them a stream of random banner text. It suits operators who want a narrow network decoy rather than a broader honeypot; its appeal is simple deployment scope and adjustable connection handling, while its focus is also its main limitation.
Key features
Endlessh sends its banner before cryptographic negotiation, so it does not rely on cryptographic libraries. The project’s intended setup is to move a real SSH server to another port and direct unwanted SSH connections to Endlessh, where clients can remain occupied for hours or days. That is a useful diversion for SSH traffic, not a credential-capture tool: it has no credential lures.
The standalone, single-threaded C program uses poll() to manage multiple clients. Its default delay between banner messages is 10,000 milliseconds, and its maximum line length is 32 characters. The default client ceiling is 4,096; excess connections wait in a queue, so deployments facing heavier traffic should account for queued clients rather than assume every connection is handled immediately.
IPv4 and IPv6 are supported, with options to bind to only one address family. Diagnostics are quiet by default; repeatable verbosity flags enable standard and debug logs, and output can go to syslog. The OpenSSH-like configuration file defaults to /etc/endlessh/config. SIGTERM shuts down the daemon gracefully, SIGHUP reloads configuration, and SIGUSR1 writes connection statistics to the log. Build adjustments are documented for RHEL 6/CentOS 6, Solaris/illumos, and OpenBSD. Project discussion and contributions run through GitHub Issues and Pull Requests.
Pricing
Endlessh is open source under the Unlicense and costs nothing. There is no free trial because the software is free; deployment is self-hosted, so operators manage the host themselves. Its single free plan is the full SSH tarpit, a standalone C program with a default maximum of 4,096 clients—there are no paid tiers or plan-based feature trade-offs.
Platforms
Endlessh is for Linux and self-hosted deployment. Its documentation also covers build adjustments for RHEL 6/CentOS 6, Solaris/illumos, and OpenBSD, which may help operators working on those systems.
Who it's for
Choose Endlessh if you need a focused SSH decoy, can run it on your own infrastructure, and want control over logging, address-family binding, and banner behavior. It is a poor fit if you need credential lures, third-party service integrations, or a broader set of decoy services: its scope is limited to occupying SSH clients, and its documented logging destinations are standard output and syslog.
Pros and cons
- Pro: Banner delivery precedes cryptographic exchange, avoiding a dependency on cryptographic libraries for this narrow task.
- Pro: IPv4 and IPv6 support, configurable binding, and adjustable logging give operators practical control over network exposure and diagnostics.
- Pro: Free, self-hosted software with an Unlicense license has no subscription tier to budget for.
- Con: The 4,096-client default limit queues excess connections, which matters when planning for higher connection volumes.
- Con: It has no credential lures or documented third-party integrations, so it cannot serve as a credential-harvesting or integrated monitoring platform.
- Con: The Linux and self-hosted focus requires operators to provide and maintain their own deployment environment.
Alternatives
Canarytokens is another free option, with a hosted service whose tokens deployed through canarytokens.org are free, as well as Android, iOS, self-hosted, web, and Windows platforms. Choose it when token-based deployment or broader platform availability fits better than an SSH tarpit.
OpenCanary is free, open-source, and self-hosted for Linux and macOS; it may suit operators looking for an alternative self-hosted honeypot.
T-Pot is a free, open-source self-hosted option for Linux, macOS, and Windows, with hardware and network requirements to consider. It is an alternative when those platforms fit, provided its requirements are workable.
Beelzebub offers a free, self-hosted open-source core framework on Linux, with API support. Its free trial may also make it relevant to readers comparing trial availability.
Cowrie is a free, open-source SSH and Telnet honeypot for Linux and self-hosted use, licensed under BSD. Consider it when Telnet coverage or that license is preferable to Endlessh’s focused SSH tarpit.
Honeyd is distributed free of charge under GPL and supports Linux, self-hosted, and Windows use. Honeytrap is free Apache License 2.0 software for Linux and self-managed deployment. MedPot is a free Linux, self-hosted open-source repository that requires Go 1.17 or newer.
For more options, see Honeypot Software.
Verdict
Endlessh is a sensible choice for Linux operators who want a free, configurable way to keep unwanted SSH clients occupied while preserving a real SSH server on another port. Its narrow purpose and lack of credential lures are clear boundaries: choose a broader honeypot if you need more than an SSH tarpit.
Verdict
Endlessh provides a focused SSH tarpit with configurable logging and network binding options. Its default client limit and queued excess connections are worth considering when planning deployment.
Questions
Is Endlessh free?
Yes. Its listed plan costs nothing, and the repository identifies the project as open source under the Unlicense.
What does Endlessh do?
It slowly sends an endless, random SSH banner to keep SSH clients occupied for hours or days. The project describes putting a real SSH server on another port.
Which platforms does it support?
Linux and self-hosted deployment are listed. The project also documents build adjustments for RHEL 6/CentOS 6, Solaris/illumos, and OpenBSD.
What is the default client limit?
The default maximum is 4,096 clients. Additional connections wait in the queue.
Does Endlessh support IPv6?
Yes. It supports IPv4 and IPv6, with options to bind to either address family alone.
What logging options does it provide?
Diagnostics are quiet by default. Verbosity flags enable standard and debug logging, and logs can be sent to standard output or syslog.
Facts from Endlessh's own pages
- Banner controls
- The delay between messages defaults to 10000 milliseconds, and the maximum banner line length defaults to 32 characters. · github.com, 4 Oct 2026
- Build platforms
- The project documents build adjustments for RHEL 6/CentOS 6, Solaris/illumos, and OpenBSD. · github.com, 4 Oct 2026
- Configuration
- The configuration file uses syntax similar to OpenSSH and defaults to /etc/endlessh/config. · github.com, 4 Oct 2026
- Connection limit
- The maximum number of clients defaults to 4096, and excess connections wait in the queue. · github.com, 4 Oct 2026
- Cryptography
- The banner is sent before any cryptographic exchange, so the program does not depend on cryptographic libraries. · github.com, 4 Oct 2026
- Implementation
- Endlessh is a standalone, single-threaded C program that uses poll() to handle multiple clients. · github.com, 4 Oct 2026
- Integrations
- The README describes logging to standard output or syslog and does not list third-party service integrations. · github.com, 4 Oct 2026
- License
- The repository identifies its license as the Unlicense. · github.com, 4 Oct 2026
- Logging
- Diagnostics are quiet by default; repeatable verbosity flags enable standard and debug logging, and logs can be sent to syslog. · github.com, 4 Oct 2026
- Network support
- Endlessh supports IPv4 and IPv6, with options to bind to either address family alone. · github.com, 4 Oct 2026
- Purpose
- Endlessh slowly sends an endless, random SSH banner to keep SSH clients occupied for hours or days. · github.com, 4 Oct 2026
- Signals
- SIGTERM gracefully shuts down the daemon, SIGHUP reloads its configuration, and SIGUSR1 prints connection statistics to the log. · github.com, 4 Oct 2026
- Support
- The repository provides GitHub Issues and Pull Requests for project discussion and contributions. · github.com, 4 Oct 2026
- Use case
- The project describes placing a real SSH server on another port so unwanted SSH clients get stuck in the tarpit instead. · github.com, 4 Oct 2026
Where Endlessh stands on Freedom251
- Honeypot Software#5 of 21