Skip to main content

A manager for SSH tunnels with a GUI.

Project description

SSH Tunnel Manager GUI

Build status PyPi upload status

SSH Tunnel Manager Icon

SSH Tunnel Manager Screenshot

A modern, user-friendly desktop application for managing SSH tunnels with ease.

Overview

The SSH Tunnel Manager simplifies creating, managing, and executing SSH tunnels through an intuitive Graphical User Interface (GUI). Built with Python and PyQt6, it allows for easy configuration of connection profiles, port forwarding, and tunnel control.

Getting Started

There are a couple of easy ways to get started with SSH Tunnel Manager:

1. Download Executable (Recommended)

The easiest way to use the application is to download a pre-built executable for your operating system.

  1. Go to the Releases page.
  2. Download the latest executable for your system (Windows, macOS, or Linux).
  3. Run the downloaded application. No installation is typically required.

2. Install with pip (Cross-Platform)

If you have Python and pip installed, you can install the SSH Tunnel Manager GUI directly from PyPI:

pip install ssh-tunnel-manager-gui

Then, you should be able to run it from your terminal (the exact command might depend on your system's PATH configuration, often it's ssh-tunnel-manager-gui).

Key Features

  • Intuitive Profile Management: Save, load, and manage multiple SSH connection profiles.
  • Easy Port Forwarding: Configure multiple local-to-remote port mappings per profile.
  • Simple Tunnel Control: Start/stop tunnels with a click. Copy the underlying SSH command.
  • Real-time Status: Clear visual feedback on tunnel status (Idle, Starting, Running, Stopped, Errors).
  • Automatic Persistence: Profiles are saved to ~/.config/ssh_tunnel_manager/config.json.
  • Privileged Port Warnings: Automatic detection and warnings for ports < 1024 that require sudo/root access.

Configuration

Once the application is running:

  • Server: Enter the SSH server address (user@hostname).
  • SSH Port: Specify the SSH server port (defaults to 22).
  • Authentication: Choose between SSH Key (default) or Password authentication.
    • SSH Key File: (Optional) Path to your SSH private key (tilde ~ expansion supported).
    • Password: Enter your SSH password (requires sshpass to be installed).
  • Port Forwarding: Add/remove Local Port to Remote Port mappings.
  • Profiles: Save, load, or delete configurations. Changes are auto-saved.

Application data is stored in ~/.config/ssh_tunnel_manager/config.json.

For Developers

If you want to contribute or run the latest development version:

Running from Source

  1. Clone the repository:
    git clone https://github.com/NtWriteCode/ssh-tunnel-manager.git
    cd ssh-tunnel-manager
    
  2. Create a virtual environment (recommended):
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:
    pip install -r requirements.txt
    # For development, also install dev dependencies:
    # pip install -r requirements.dev.txt
    
  4. Run the application:
    python -m ssh_tunnel_manager.main  # Or your project's main entry point
    
    (Note: I've assumed python -m ssh_tunnel_manager.main as a common way to run GUI apps from a package structure. If your entry point is just python main.py at the root, please adjust or let me know.)

Requirements (for running from source)

  • Python 3.x
  • PyQt6 (PyQt6>=6.0.0)
  • typing-extensions>=4.0.0
  • An SSH client installed and available in your system's PATH (e.g., OpenSSH).
  • sshpass (optional, required for password authentication):
    • Ubuntu/Debian: sudo apt install sshpass
    • macOS: brew install sshpass
    • CentOS/RHEL: sudo yum install sshpass

Building from Source

The project uses PyInstaller. The GitHub Actions workflow (.github/workflows/main-build.yml) handles release builds.

To build manually:

  1. Ensure you are in the project root with your virtual environment activated.
  2. Install build dependencies: pip install pyinstaller
  3. Run PyInstaller (example):
    pyinstaller --onefile --name ssh-tunnel-manager-gui --windowed --icon="ssh_tunnel_manager/icon.ico" --add-data "ssh_tunnel_manager/icon.ico:ssh_tunnel_manager" run_app.py
    
    (The run_app.py script is a dedicated entry point for PyInstaller. --icon sets the executable icon. --add-data ensures the icon is also bundled for runtime access. --windowed is good for GUI apps. The name ssh-tunnel-manager-gui aligns with the PyPI name.) Executables are found in the dist directory.

Contributing

Contributions are welcome! Please fork the repository, create a feature branch, commit your changes, and open a pull request.

  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 the MIT License. See LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssh_tunnel_manager_gui-0.2.4.tar.gz (103.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl (101.0 kB view details)

Uploaded Python 3

File details

Details for the file ssh_tunnel_manager_gui-0.2.4.tar.gz.

File metadata

  • Download URL: ssh_tunnel_manager_gui-0.2.4.tar.gz
  • Upload date:
  • Size: 103.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ssh_tunnel_manager_gui-0.2.4.tar.gz
Algorithm Hash digest
SHA256 8fda79a97dc46126fcfdecf13bb0ecf538a6445828a28040f707b9708ae6f62c
MD5 a086d4e1a62a7e30ad6f693a6eaac1e7
BLAKE2b-256 2e6d0d022945cd20c7dec9724d2e702622e7bf0f467a6a12d07df88951bbd738

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssh_tunnel_manager_gui-0.2.4.tar.gz:

Publisher: publish-to-pypi.yml on NtWriteCode/ssh-tunnel-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bfdacca0df4e136bedea8038476895d3ce848c568085c66c3dff7c89a5bb951c
MD5 c83c1185d8032730a8f34fb3f6bad899
BLAKE2b-256 bc3df45c7cf8cf391c083561138a937cc825db4c8675f9ac30c3fbc85643af83

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl:

Publisher: publish-to-pypi.yml on NtWriteCode/ssh-tunnel-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page