A beautiful and secure CLI tool for managing SSH connections with a modern TUI interface
Built with β€οΈ using Bubble Tea and Go
- π¨ Beautiful TUI Interface - Modern terminal user interface with colors and smooth animations
- π Secure Password Storage - Master password with system keyring integration (macOS Keychain, Linux Secret Service, Windows Credential Manager)
- π Dual Authentication - Support for both password and SSH key authentication
- π Connection Management - Add, edit, delete, and organize your SSH connections
- π Smart Search - Quick connection search and filtering
- π€ Export/Import - Full compatibility with OpenSSH config format
- β‘ Fast & Lightweight - Built with Go for optimal performance
- π Cross-Platform - Works on macOS, Linux, and Windows
- π Open Source - MIT licensed, community-driven development
macOS & Linux:
curl -fsSL https://raw.githubusercontent.com/ankogit/ssh_keeper/main/scripts/install.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/ankogit/ssh_keeper/main/scripts/install.ps1 | iexπ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: Π‘ΠΊΡΠΈΠΏΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΅Π»ΠΈΠ·Π°!
β¨ Features of the installer:
- π Auto-detects your OS and architecture
- π₯ Downloads the correct version automatically
- π§ Installs to system directory (
/usr/local/bin)- β Verifies installation success
- π¨ Beautiful colored output with progress
Download the latest release for your platform:
- macOS Intel: ssh-keeper-0.1.0-darwin-amd64.tar.gz (3.08 MiB)
- macOS Apple Silicon: ssh-keeper-0.1.0-darwin-arm64.tar.gz (2.94 MiB)
- Linux: ssh-keeper-0.1.0-linux-amd64.tar.gz (3.84 MiB)
- Windows: ssh-keeper-0.1.0-windows-amd64.zip (3.33 MiB)
# Extract the archive
tar -xzf ssh-keeper-0.1.0-*.tar.gz # Linux/macOS
# or unzip ssh-keeper-0.1.0-windows-amd64.zip # Windows
# Make executable (Linux/macOS)
chmod +x ssh-keeper*
# Run
./ssh-keeperπ ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅: INSTALL.md | macOS Apple Silicon
macOS & Linux:
curl -fsSL https://raw.githubusercontent.com/ankogit/ssh_keeper/main/scripts/uninstall.sh | bashManual uninstall:
# Remove binary
sudo rm /usr/local/bin/ssh-keeper
# Remove configuration (optional)
rm -rf ~/.ssh-keeperNote: Screenshots will be added here once the application is running
Beautiful main menu with intuitive navigation
View and manage your SSH connections
Easy connection setup with form validation
# Clone the repository
git clone https://github.com/ankogit/ssh_keeper.git
cd ssh_keeper
# Build the application
make build
# Run the application
make run# Build for current platform
make build
# Build for all platforms
make build-all
# Run in development mode
make run-dev
# Install system-wide
make install- Go 1.24+ - Download Go
- Make (optional, for using Makefile)
When you first run SSH Keeper, you'll be prompted to set up a master password. This password is used to encrypt your connection data and is stored securely in your system's keyring.
ssh-keeperThe application provides an intuitive main menu with the following options:
- π View Connections - Browse and search your SSH connections
- β Add Connection - Add a new SSH connection
- βοΈ Settings - Configure application settings
- π€ Export - Export connections to OpenSSH config
- π₯ Import - Import connections from OpenSSH config
- β Quit - Exit the application
| Key | Action |
|---|---|
β/β |
Navigate menu items |
Enter |
Select item |
Ctrl+S |
Search connections |
Esc |
Go back |
Q |
Quit application |
- Select "β Add Connection" from the main menu
- Fill in the connection details:
- Name: A friendly name for your connection
- Host: Server hostname or IP address
- Port: SSH port (default: 22)
- User: Username for SSH connection
- Authentication: Choose between password or SSH key
- Save your connection
- Enter your password when adding the connection
- Password is encrypted and stored securely
- No need to enter password each time you connect
- Specify the path to your SSH private key
- Supports standard SSH key formats
- Works with existing SSH key infrastructure
SSH Keeper stores its configuration in ~/.ssh-keeper/:
config.yaml- Application settingsconnections.yaml- SSH connections (encrypted)- Passwords are stored securely using system keyring
Create a .env file for development:
cp env.example .env| Variable | Description | Default | Required |
|---|---|---|---|
DEBUG |
Enable debug mode | false |
No |
ENV |
Environment (development/production) | development |
No |
CONFIG_PATH |
Path to application config file | ~/.ssh-keeper/config |
No |
APP_SIGNATURE |
Application signature for security | - | Yes |
SSH_CONFIG_PATH |
Path to SSH config file | ~/.ssh/config |
No |
For production builds, configure GitHub Environment variables:
- Go to Settings β Environments
- Create/Edit "Production" environment
- Add environment variable:
- Name:
APP_SIGNATURE - Value:
ssh-keeper-prod-signature
- Name:
See CI/CD Documentation for detailed setup instructions.
SSH Keeper prioritizes security and follows best practices:
- Encrypted Storage: All connection data is encrypted using AES-256
- System Keyring Integration: Master password stored in system keyring (Keychain/Secret Service/Credential Manager)
- Memory Management: Sensitive data cleared from memory after use
- No Plain Text: No passwords stored in plain text files
- Open Source: Full source code available for security audit
ssh_keeper/
βββ cmd/ssh-keeper/ # Main application entry point
βββ internal/
β βββ models/ # Data models (Connection, Config)
β βββ ui/ # TUI components and screens
β β βββ components/ # Reusable UI components
β β βββ screens/ # Application screens
β βββ services/ # Business logic services
β βββ ssh/ # SSH client integration
β βββ config/ # Configuration management
βββ docs/ # Documentation
βββ scripts/ # Build and utility scripts
βββ Formula/ # Homebrew formulas
βββ Makefile # Build automation
# Clone the repository
git clone https://github.com/ankogit/ssh_keeper.git
cd ssh_keeper
# Download dependencies
make deps
# Set up development environment
make dev-setup
# Run tests
make test
# Run with coverage
make test-coverageSSH Keeper uses GitHub Actions for automated CI/CD:
- β Automated Testing - Tests run on every push/PR
- β Multi-platform Builds - Linux, macOS, Windows
- β Automatic Releases - Tag-based releases with artifacts
- β Security Scanning - Code and dependency vulnerability checks
- β Code Quality - Linting and formatting checks
Create a release:
git tag v0.1.0
git push origin v0.1.0π CI/CD Documentation: CI_CD_DOCUMENTATION.md
# Build for current platform
make build
# Build for all platforms
make build-all
# Create release packages
make releaseWe welcome contributions! SSH Keeper is an open source project under the MIT license.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Go best practices and conventions
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass before submitting PR
Found a bug? Have a feature request? Please open an issue!
This project is licensed under the MIT License - see the LICENSE file for details.
The MIT License is one of the most permissive open source licenses, allowing:
- β Commercial use - Use in commercial projects
- β Modification - Modify and create derivatives
- β Distribution - Distribute copies
- β Private use - Use privately
- β Patent use - Use patented technology
This makes SSH Keeper accessible to everyone while maintaining the freedom to use, modify, and distribute the software.
SSH Keeper is built with amazing open source projects:
- Bubble Tea - A powerful TUI framework for Go
- Bubbles - Beautiful UI components
- Lip Gloss - Styling for terminal applications
- go-keyring - Cross-platform keyring access
- Termenv - Terminal environment detection
- β Core Features - Connection management, secure storage
- β TUI Interface - Beautiful terminal interface
- β Cross-Platform - macOS, Linux, Windows support
- β Security - Encrypted storage, system keyring integration
- π Documentation - Comprehensive docs and examples
- π Testing - Unit tests and integration tests
- π Packaging - Homebrew, Debian packages
Made with β€οΈ by the SSH Keeper community
β Star this project | π Report Bug | π‘ Request Feature | π Documentation