Skip to content
A simple SSH tarpit inspired by endlessh
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
extra rc script: Change option names so rc system doesn't apply them early Apr 4, 2019
.gitignore Tarssh: A simple Rust/Tokio SSH tarpit Mar 25, 2019
Cargo.toml Use official rusty-sandbox 0.2 release, and update deps. Apr 10, 2019
LICENSE.txt MITify, README Mar 26, 2019 Update README Apr 7, 2019


A simple SSH tarpit, similar to endlessh.

Written in Rust using Tokio for async IO, privdrop for basic Unix privilege dropping, and rusty-sandbox for optional sandboxing on FreeBSD (Capsicum), OpenBSD (Pledge) and macOS (Seatbelt).


-% cargo build --release
-% target/release/tarssh --help
tarssh 0.1.0
Thomas Hurst <>
A SSH tarpit server

    tarssh [FLAGS] [OPTIONS]

        --disable-timestamps    Disable timestamps in logs
    -h, --help                  Prints help information
    -V, --version               Prints version information
    -v, --verbose               Verbose level (repeat for more verbosity)

        --chroot <chroot>              Chroot to this directory
    -d, --delay <delay>                Seconds between responses [default: 10]
    -g, --group <group>                Run as this group
    -l, --listen <listen>...           Listen address(es) to bind to [default:]
    -c, --max-clients <max_clients>    Best-effort connection limit [default: 4096]
    -t, --timeout <timeout>            Socket write timeout [default: 30]
    -u, --user <user>                  Run as this user and their primary group

-% target/release/tarssh -v --disable-timestamps -l \[::]:2222
[INFO  tarssh] listen, addr:
[INFO  tarssh] listen, addr: [::]:2222
[INFO  tarssh] privdrop, enabled: false
[INFO  tarssh] sandbox, enabled: true
[INFO  tarssh] start, servers: 2, max_clients: 4096, delay: 10s, timeout: 30s
[INFO  tarssh] connect, peer:, clients: 1
[INFO  tarssh] connect, peer: [::1]:37494, clients: 2
[INFO  tarssh] disconnect, peer:, duration: 20.19s, error: Broken pipe (os error 32), clients: 1
[INFO  tarssh] disconnect, peer: [::1]:37494, duration: 30.08s, error: Broken pipe (os error 32), clients: 0
You can’t perform that action at this time.