-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
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
Labels
No labels