{"id":37104908,"url":"https://github.com/igda-igda/sshm","last_synced_at":"2026-01-14T12:40:03.664Z","repository":{"id":313181868,"uuid":"1039103666","full_name":"igda-igda/sshm","owner":"igda-igda","description":"SSHM is a CLI SSH connection manager that helps DevOps engineers, system administrators, and developers connect to multiple remote servers simultaneously through organized tmux sessions, featuring professional color support and modern terminal interface design.","archived":false,"fork":false,"pushed_at":"2025-09-04T10:18:57.000Z","size":419,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-04T12:22:38.697Z","etag":null,"topics":["cli","devops","golang","ssh","ssh-manager","system-administration","terminal","tmux"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igda-igda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-16T13:42:40.000Z","updated_at":"2025-09-04T10:19:00.000Z","dependencies_parsed_at":"2025-09-04T12:23:07.404Z","dependency_job_id":"0da31758-a811-4ac9-8f47-b9bee565ee8d","html_url":"https://github.com/igda-igda/sshm","commit_stats":null,"previous_names":["igda-igda/sshm"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/igda-igda/sshm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igda-igda%2Fsshm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igda-igda%2Fsshm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igda-igda%2Fsshm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igda-igda%2Fsshm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igda-igda","download_url":"https://codeload.github.com/igda-igda/sshm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igda-igda%2Fsshm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","devops","golang","ssh","ssh-manager","system-administration","terminal","tmux"],"created_at":"2026-01-14T12:40:02.721Z","updated_at":"2026-01-14T12:40:03.609Z","avatar_url":"https://github.com/igda-igda.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SSHM - SSH Connection Manager\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"SSHM.jpeg\" alt=\"SSHM - SSH Connection Manager\" width=\"100%\"\u003e\n\n[![Go](https://github.com/igda-igda/sshm/workflows/Go/badge.svg)](https://github.com/igda-igda/sshm/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/igda-igda/sshm)](https://goreportcard.com/report/github.com/igda-igda/sshm)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8.svg)](https://golang.org/)\n\n**Enterprise-grade SSH connection manager with integrated tmux sessions and intuitive TUI**\n\n*Eliminate connection chaos. Scale your infrastructure management.*\n\n[Installation](#installation) • [Quick Start](#quick-start) • [Features](#key-capabilities) • [Documentation](#command-reference)\n\n---\n\n\u003c/div\u003e\n\n## Overview\n\nSSHM is a professional SSH connection manager designed for DevOps teams managing complex infrastructure. It combines organized server management, persistent tmux sessions, and a k9s-inspired terminal interface to eliminate connection overhead and improve operational efficiency.\n\n**Key Benefits:**\n- **Visual Management** - TUI interface for browsing and organizing servers\n- **Session Persistence** - tmux integration with intelligent session handling\n- **Enterprise Security** - Encrypted credential storage with multiple auth methods\n- **Team Workflows** - Profile-based organization and configuration sharing\n\n---\n\n## Installation\n\n### Go Install (Recommended)\n```bash\ngo install github.com/igda-igda/sshm@latest\n```\n\n### Build from Source\n```bash\ngit clone https://github.com/igda-igda/sshm.git\ncd sshm \u0026\u0026 go build -ldflags=\"-s -w\" -o sshm main.go\nsudo mv sshm /usr/local/bin/\n```\n\n### Binary Releases\nDownload pre-built binaries from [GitHub Releases](https://github.com/igda-igda/sshm/releases/latest):\n\n| Platform | Architecture | Download |\n|----------|-------------|----------|\n| 🐧 Linux | AMD64 | [sshm-linux-amd64](https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-linux-amd64) |\n| 🐧 Linux | ARM64 | [sshm-linux-arm64](https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-linux-arm64) |\n| 🍎 macOS | Intel | [sshm-darwin-amd64](https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-darwin-amd64) |\n| 🍎 macOS | Apple Silicon | [sshm-darwin-arm64](https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-darwin-arm64) |\n| 🪟 Windows | AMD64 | [sshm-windows-amd64.exe](https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-windows-amd64.exe) |\n\n**Installation:**\n```bash\n# Linux/macOS example\ncurl -L https://github.com/igda-igda/sshm/releases/download/v1.4.0/sshm-linux-amd64 -o sshm\nchmod +x sshm\nsudo mv sshm /usr/local/bin/\n```\n\n**Requirements:** tmux, SSH client\n\n---\n\n## Quick Start\n\n### 1. Launch TUI\n```bash\nsshm tui\n```\n\n### 2. Add Servers\n```bash\n# Interactive setup\nsshm add production-web\n\n# Direct configuration\nsshm add prod-api \\\n  --hostname api.prod.com \\\n  --username deploy \\\n  --auth-type key \\\n  --key-path ~/.ssh/prod_key\n```\n\n### 3. Organize with Profiles\n```bash\nsshm profile create production\nsshm profile assign prod-web production\nsshm profile assign prod-api production\n```\n\n### 4. Connect\n```bash\n# Single server\nsshm connect prod-web\n\n# Group connection (multiple windows)\nsshm batch --profile production\n```\n\n---\n\n## Key Capabilities\n\n### TUI Interface\n- **Visual Navigation** - Arrow keys, search (`/`), quick actions (`a`, `e`, `d`)\n- **Multi-Panel Layout** - Servers, profiles, sessions, history\n- **Real-time Monitoring** - Connection status and session health\n- **Keyboard Shortcuts** - Full control without mouse interaction\n\n### Session Management\n- **Intelligent tmux Integration** - Automatic session creation and naming\n- **Single Server Mode** - Dedicated sessions per server\n- **Group Mode** - One session with multiple windows per profile\n- **Persistence** - Sessions survive network interruptions\n\n### Security \u0026 Authentication\n- **Multiple Methods** - SSH keys, passwords, SSH agent\n- **Encrypted Storage** - System keyring integration\n- **Connection History** - Track usage patterns and diagnostics\n- **Secure Input** - Hidden credential prompts\n\n### Team Collaboration\n- **Profile Organization** - Environment-based grouping (dev/staging/prod)\n- **Configuration Export** - YAML/JSON sharing between teams\n- **Import Support** - SSH config and team configurations\n- **Batch Operations** - Simultaneous environment connections\n\n---\n\n## Architecture\n\n### Session Design\n```\nSingle Connection                Group Connection\n┌─────────────────────┐         ┌─────────────────────────────┐\n│ tmux: \"prod-web\"    │         │ tmux: \"production\"          │\n│ ┌─────────────────┐ │         │ ┌─────┐ ┌─────┐ ┌─────┐     │\n│ │   SSH Session   │ │         │ │ web │ │ api │ │ db  │     │\n│ └─────────────────┘ │         │ └─────┘ └─────┘ └─────┘     │\n└─────────────────────┘         └─────────────────────────────┘\n```\n\n### Security Model\n- **Local Configuration** - `~/.sshm/` with restricted permissions\n- **Credential Encryption** - System keyring for sensitive data\n- **Zero Password Storage** - Authentication preferences only\n- **SSH Key References** - File paths, never private key content\n\n---\n\n## Command Reference\n\n### Core Operations\n```bash\nsshm tui                         # Launch TUI interface\nsshm add \u003cname\u003e [flags]         # Add server\nsshm list [--profile \u003cname\u003e]    # List servers\nsshm connect \u003cname\u003e             # Single connection\nsshm batch --profile \u003cname\u003e     # Group connection\nsshm remove \u003cname\u003e              # Remove server\n```\n\n### Profile Management\n```bash\nsshm profile create \u003cname\u003e              # Create profile\nsshm profile list                       # List profiles\nsshm profile assign \u003cserver\u003e \u003cprofile\u003e  # Assign server\nsshm profile delete \u003cname\u003e              # Delete profile\n```\n\n### Session Control\n```bash\nsshm sessions list              # Active sessions\nsshm sessions kill \u003cname\u003e       # Kill session\nsshm history [--days N]         # Connection history\n```\n\n### Configuration\n```bash\nsshm import \u003cfile\u003e                     # Import configuration\nsshm export \u003cfile\u003e [--profile \u003cname\u003e]  # Export configuration\nsshm export \u003cfile\u003e --format json       # Export as JSON\n```\n\n---\n\n## Development\n\n### Testing\n```bash\ngo test ./...                   # Run all tests\ngo test -cover ./...           # With coverage\n```\n\n### Building\n```bash\n# Cross-platform builds\nGOOS=linux GOARCH=amd64 go build -o sshm-linux-amd64 main.go\nGOOS=darwin GOARCH=arm64 go build -o sshm-darwin-arm64 main.go\nGOOS=windows GOARCH=amd64 go build -o sshm-windows.exe main.go\n```\n\n---\n\n## Project Status\n\n| Component | Status | Notes |\n|-----------|--------|-------|\n| **Core SSH Management** | ✅ Complete | tmux integration, authentication |\n| **Profile Organization** | ✅ Complete | Batch operations, import/export |\n| **TUI Interface** | ✅ Complete | k9s-inspired design |\n| **Advanced Security** | 🔄 In Progress | Enhanced encryption, keyring |\n| **Cloud Integration** | 📋 Planned | AWS/GCP/Azure discovery |\n\n**Current Version:** v1.4.0 • **Status:** Production Ready\n\n---\n\n## Contributing\n\n1. Fork repository\n2. Create feature branch (`feature/new-capability`)\n3. Add tests for changes\n4. Ensure `go test ./...` passes\n5. Submit pull request\n\n**Guidelines:** Follow Go conventions, maintain test coverage, update documentation.\n\n---\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built for DevOps teams managing complex infrastructure at scale.**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figda-igda%2Fsshm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figda-igda%2Fsshm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figda-igda%2Fsshm/lists"}