A command-line tool to manage multiple SSH keys with aliases, switching, backup, and agent integration.
SKM is a command-line SSH keys manager that helps users organize, switch between, and back up multiple SSH key pairs using alias names. It solves the problem of managing keys for different servers, environments, or Git accounts by providing a centralized, intuitive interface. The tool supports key creation, listing, deletion, remote deployment, and integration with SSH agent caching.
Developers, system administrators, and DevOps engineers who regularly use multiple SSH keys for accessing different servers, cloud instances, or Git repositories. It is especially useful for those managing separate keys for work, personal projects, and various environments like development, staging, and production.
SKM offers a streamlined, alias-driven approach to SSH key management, eliminating manual file renaming and directory juggling. Its unique features include an interactive prompt for key selection, backup/restore functionality, and a hook system for automating post-switch tasks, making it more powerful than basic shell scripts while remaining simple to use.
A simple and powerful SSH keys manager
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Manages keys by descriptive aliases like 'prod' or 'dev', eliminating manual file renaming and reducing errors in multi-key workflows.
Offers a visual selection interface with 'skm use' for quick key switching, enhancing usability over raw command memorization.
Supports both tar archives and restic integration for secure, incremental backups, ensuring key safety with minimal setup.
Provides direct commands to add, remove, and list keys in the SSH agent cache, streamlining authentication without extra tools.
Only supports RSA and ED25519 keys, excluding other common types like ECDSA, which may hinder users with specific cryptographic requirements.
Advanced restic backups require separate installation and configuration, adding complexity and potential maintenance overhead.
Hooks need to be created as executable files in each key directory, which can be tedious and error-prone compared to built-in automation.