A lightweight SSH server frontend where authentication and connections are controlled with command handlers and shell scripts.
sshfront is a lightweight SSH server frontend that allows developers to control SSH authentication and session handling through external command-line scripts. It solves the problem of building custom SSH-based services by providing a programmable interface that delegates logic to user-defined handlers, enabling flexible and secure remote execution workflows.
System administrators, DevOps engineers, and developers who need to build custom SSH gateways, bastion hosts, or automated remote command execution systems.
Developers choose sshfront for its simplicity and flexibility—it allows them to implement complex authentication and command routing logic using familiar shell scripts, without the overhead of a full-featured SSH server or the need to write low-level Go code.
Programmable SSH frontend
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delegates all SSH connections to user-defined command-line scripts, allowing custom logic for command execution without modifying the SSH server, as shown in the echo and bash server examples.
Supports an optional auth-hook script for implementing custom public key or user-based authentication, with environment variable injection for context-aware access control.
Can pass server environment variables to handlers via the -e flag, enabling context-aware command execution, as demonstrated in the env example.
Minimal overhead and integrates easily with existing shell scripts and tools, adhering to the Unix philosophy of small, composable components.
Relies entirely on user-provided scripts for authentication and handling, which can lead to vulnerabilities if not implemented correctly; the README warns against running without auth hooks in production.
Lacks out-of-the-box support for common SSH server features like SFTP, port forwarding, or detailed logging, requiring additional scripting effort.
Requires writing and maintaining custom shell scripts for all handlers and auth hooks, which can be error-prone and increase development time compared to configured solutions.