A tool that simplifies running single commands over SSH and manages authorized keys for secure remote execution.
SSHCommand is a tool that simplifies running single commands over SSH by managing users and SSH key access control lists (ACLs). It allows administrators to create dedicated users for specific commands and control which SSH keys can execute them, turning SSH into a thin client for remote operations.
System administrators, DevOps engineers, and developers who need to securely expose specific commands on servers via SSH without granting full shell access.
It reduces the complexity of SSH-based command execution, provides fine-grained access control through named key management, and enforces security by default with duplicate key prevention and customizable SSH options.
Turn SSH into a thin client specifically for your app
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts verbose SSH commands into concise calls, as shown by the example turning 'ssh user@server 'ls -l <args>'' into 'ssh ls@server <args>'.
Enforces unique key names and fingerprints by default, and allows customization of SSH options via environment variables like SSHCOMMAND_ALLOWED_KEYS for fine-grained control.
Supports JSON output for key listings with the list command, enabling easy integration with scripts and monitoring tools.
Focuses solely on simplifying SSH command execution without adding unnecessary complexity, aligning with the project's philosophy of doing one thing well.
Key management operations often require root privileges, such as adding keys via 'ssh root@server', which can be a security and operational hurdle in restricted environments.
Restricts users to executing only predefined single commands, making it unsuitable for tasks that need interactive sessions or chained operations.
Involves multiple steps per command, including user creation and key addition, which can be tedious for scaling to numerous commands or servers.