Echogy
Posted by Youkale on 2024-10-07
Echogy
A lightweight and efficient SSH reverse proxy tool implemented in Go, featuring a beautiful Terminal User Interface (TUI).
Features
Terminal User Interface (TUI)
- Modern and responsive terminal interface
- SSH session management
- Real-time connection status monitoring
- User-friendly interface for managing SSH connections
Core Features
- SSH reverse proxy functionality
- Multiple concurrent SSH connections support
- TCP port forwarding
- Secure session management
- Built-in logging system
Quick Start
- Clone the repository:
1
2
| git clone https://github.com/echogy-io/echogy.git
cd echogy
|
- Install dependencies:
- Configure your settings in
config.json
:
1
2
3
4
5
6
7
| {
"addr": ":443",
"ssh_addr": ":22",
"domain": "your-domain.com",
"idle_timeout": 300,
"key": "YOUR_SSH_KEY"
}
|
- Build and run:
Project Structure
.
├── cmd/ # Command line tools
├── logger/ # Logging framework
├── tui/ # Terminal User Interface components
├── pprof/ # Performance profiling
├── echogy.go # Core SSH implementation
├── conn.go # Connection management
├── facade.go # Facade pattern implementation
├── forward.go # Port forwarding logic
└── util.go # Utility functions
Key Components
- SSH Server: Handles SSH connections and session management
- Forward Proxy: Manages TCP port forwarding
- TUI: Provides an interactive terminal interface
- Logger: Structured logging with multiple output formats
Configuration
SSH Key Setup
1
2
| ssh-keygen -b 2048 -f echogy_rsa
# Copy the private key content to config.json
|
Domain Configuration
1
2
3
| # DNS A records
A your-domain.com YOUR_SERVER_IP
A *.your-domain.com YOUR_SERVER_IP
|
License
This project is licensed under the BSD-3-Clause License.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.