Skip to content

tarssh vs. endlessh #5

@Luflosi

Description

@Luflosi

What are the differences between tarssh and endlessh? The README.md explains, that tarssh is "similar to endlessh" but doesn't tell me much else.
I'm trying to decide which one to use on Linux. Can you please explain the main differences between the two? What was your motivation for writing tarssh when endlessh already existed?
After a little bit of research, the main differences I noticed are:

  • tarssh is written in Rust. This gives me slightly more confidence that there are no exploitable bugs that could lead to remote code execution.
  • endlessh is more popular (at least when measured by GitHub stars). This means that more people probably looked at the code and found potential bugs.
  • tarssh has more frequent releases. For such a simple program this is probably not a good indicator of good maintenance though.
  • tarssh has an option to run as a specific user and group. I think this is useful when starting as root to bind to port 22, so it doesn't continue to run as root. endlessh doesn't seem to have this option, although Add support for socket activation skeeto/endlessh#40 might provide a much better alternative in the future.
  • endlessh seems to generate pseudorandom data, while tarssh seems to use a few hardcoded strings. The latter makes it very easy to fingerprint a tarssh server, which may or may not actually matter, while generating pseudorandomness takes a tiny bit more computational resources but might also be almost as easily fingerprintable if not initialised properly with a true random number (ie. always with the same value).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions