Skip to content

A professional desktop application for managing SSH reverse tunnels with native Windows interface. Features multi-language support, system tray integration, and real-time tunnel monitoring. Perfect for developers, sysadmins, and remote access needs.

License

Notifications You must be signed in to change notification settings

daniscript18/ssh-tunnel-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SSH Tunnel Manager ๐Ÿš€

Version Python License Platform

A professional desktop application for managing SSH reverse tunnels with an intuitive graphical interface. Perfect for developers, system administrators, and anyone needing secure remote access to local services.

โœจ Features

  • ๐ŸŒ SSH Reverse Tunnels - Easy configuration of SSH -R tunnels
  • ๐ŸŽฏ Visual Management - Native Windows interface for managing multiple tunnels
  • ๐Ÿ” Auto-detection - Automatic loading of hosts from SSH config
  • ๐ŸŒ Multi-language - Support for English and Spanish
  • ๐Ÿ”„ Real-time Monitoring - Live status updates for active tunnels
  • ๐Ÿ’ผ System Tray Integration - Runs discreetly in background
  • ๐Ÿ”’ Secure - Uses SSH key authentication
  • ๐Ÿš€ One-click Management - Start/stop tunnels with single clicks

๐Ÿ“ธ Screenshots

screenshot1 screenshot2

๐Ÿ“‹ System Requirements

Required Software

  • Python: 3.9 or higher
  • SSH Client: OpenSSH installed and in PATH
  • Operating System: Windows 10/11

Python Dependencies

pip install PySide6 paramiko psutil

๐Ÿš€ Installation

Method 1: From Source Code

# Clone or download the repository
git clone https://github.com/daniscript18/ssh-tunnel-manager
cd ssh-tunnel-manager

# Install dependencies
pip install -r requirements.txt

# Run application
python ssh_tunnel_manager.py

Method 2: Pre-compiled Executable

Download SSHTunnelManager.exe from [Releases] and run directly.

โš™๏ธ Configuration

1. Basic SSH Configuration

File: C:\Users\<user>\.ssh\config (Windows)

# Example configuration for VPS server
Host my-vps
    HostName 192.168.1.100
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_rsa
    ServerAliveInterval 60
    ServerAliveCountMax 3

# Example for cloud service
Host aws-server
    HostName ec2-xx-xx-xx-xx.compute-1.amazonaws.com
    User ec2-user
    IdentityFile ~/.ssh/aws-key.pem

# Configuration for multiple hosts
Host dev-server
    HostName dev.example.com
    User developer
    Port 2222

Host prod-server
    HostName prod.example.com
    User admin

2. SSH Server Configuration

To allow port forwarding, edit /etc/ssh/sshd_config on the server:

# Enable remote port forwarding
GatewayPorts yes
AllowTcpForwarding yes
ClientAliveInterval 30
ClientAliveCountMax 3

# Recommended security options
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Restart SSH service after changes:

sudo systemctl restart sshd

๐ŸŽฏ Usage

Starting a New Tunnel

  1. Select SSH Host from the dropdown (loaded from your SSH config)
  2. Configure Ports:
    • Remote Port: Port on the VPS server
    • Local Port: Port on your local machine
  3. Click "Start Tunnel"

Use Case Examples

๐ŸŽฎ Minecraft Server

Host: my-vps
Remote Port: 25565
Local Port: 25565

๐ŸŒ Web Development

Host: my-vps  
Remote Port: 8080
Local Port: 3000

๐Ÿ—„๏ธ Database Access

Host: my-vps
Remote Port: 5432
Local Port: 5432

Managing Active Tunnels

  • View Status: Real-time list of active tunnels
  • Stop Individual: Select and stop specific tunnels
  • Stop All: Terminate all tunnels at once
  • System Tray: Monitor and control from system tray

๐Ÿ”ง Troubleshooting

Common Issues

โŒ SSH client not found

Solution: Install OpenSSH Client through Windows Features

โŒ Permission denied (publickey)

Solution: Verify SSH key configuration and permissions

โŒ Connection timed out

Solution: Check server connectivity and firewall settings

โŒ Address already in use

Solution: Port is occupied, choose a different remote port

๐Ÿ“ฆ Compilation

Using PyInstaller

pip install pyinstaller
pyinstaller --onefile --windowed --name "SSHTunnelManager" --icon=icon.ico --add-data "icon.ico;." ssh_tunnel_manager.py

๐Ÿ—๏ธ Architecture

Main Components

  • TunnelManager: Core tunnel management logic
  • TunnelApp: Native Windows GUI with PySide6
  • SSH Config Parser: Automatic host detection
  • Process Manager: Robust process handling with psutil

๐Ÿ”’ Security

Best Practices

  1. Use SSH Keys instead of passwords
  2. Non-standard ports for public services
  3. Restrictive firewall rules
  4. Regular updates of SSH components
  5. Monitor connection logs

๐ŸŒ Multi-language Support

The application supports both English and Spanish. Use the language selector in the main interface to switch between languages.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit Pull Requests.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

Distributed under MIT License. See LICENSE for more information.

๐Ÿ†˜ Support

If you encounter issues:

  1. Check the troubleshooting section
  2. Verify your SSH configuration
  3. Ensure ports are not blocked by firewall
  4. Open an issue with detailed information

๐Ÿ“ž Contact


Remember! SSH tunnels are powerful but require proper security configuration. Always follow best practices. ๐Ÿ›ก๏ธ

About

A professional desktop application for managing SSH reverse tunnels with native Windows interface. Features multi-language support, system tray integration, and real-time tunnel monitoring. Perfect for developers, sysadmins, and remote access needs.

Topics

Resources

License

Stars

Watchers

Forks

Languages