Name | ssh-tunnel-manager-gui JSON |
Version |
0.2.4
JSON |
| download |
home_page | None |
Summary | A manager for SSH tunnels with a GUI. |
upload_time | 2025-08-02 13:36:12 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT License
Copyright (c) 2025 NtWriteCode
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
|
keywords |
ssh
tunnel
network
gui
|
VCS |
 |
bugtrack_url |
|
requirements |
PyQt6
typing-extensions
PyYAML
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# SSH Tunnel Manager GUI
[](https://github.com/NtWriteCode/ssh-tunnel-manager/actions/workflows/main-build.yml)
[](https://github.com/NtWriteCode/ssh-tunnel-manager/actions/workflows/publish-to-pypi.yml)


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](https://github.com/NtWriteCode/ssh-tunnel-manager/releases).
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:
```bash
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:**
```bash
git clone https://github.com/NtWriteCode/ssh-tunnel-manager.git
cd ssh-tunnel-manager
```
2. **Create a virtual environment (recommended):**
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. **Install dependencies:**
```bash
pip install -r requirements.txt
# For development, also install dev dependencies:
# pip install -r requirements.dev.txt
```
4. **Run the application:**
```bash
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):
```bash
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.
Raw data
{
"_id": null,
"home_page": null,
"name": "ssh-tunnel-manager-gui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ssh, tunnel, network, gui",
"author": null,
"author_email": "NtWriteCode <118625463+NtWriteCode@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/2e/6d/0d022945cd20c7dec9724d2e702622e7bf0f467a6a12d07df88951bbd738/ssh_tunnel_manager_gui-0.2.4.tar.gz",
"platform": null,
"description": "# SSH Tunnel Manager GUI\n\n[](https://github.com/NtWriteCode/ssh-tunnel-manager/actions/workflows/main-build.yml)\n[](https://github.com/NtWriteCode/ssh-tunnel-manager/actions/workflows/publish-to-pypi.yml)\n\n\n\n\n\nA modern, user-friendly desktop application for managing SSH tunnels with ease.\n\n## Overview\n\nThe 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.\n\n## Getting Started\n\nThere are a couple of easy ways to get started with SSH Tunnel Manager:\n\n### 1. Download Executable (Recommended)\n\nThe easiest way to use the application is to download a pre-built executable for your operating system.\n\n1. Go to the [Releases page](https://github.com/NtWriteCode/ssh-tunnel-manager/releases).\n2. Download the latest executable for your system (Windows, macOS, or Linux).\n3. Run the downloaded application. No installation is typically required.\n\n### 2. Install with pip (Cross-Platform)\n\nIf you have Python and pip installed, you can install the SSH Tunnel Manager GUI directly from PyPI:\n\n```bash\npip install ssh-tunnel-manager-gui\n```\nThen, 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`).\n\n## Key Features\n\n* **Intuitive Profile Management:** Save, load, and manage multiple SSH connection profiles.\n* **Easy Port Forwarding:** Configure multiple local-to-remote port mappings per profile.\n* **Simple Tunnel Control:** Start/stop tunnels with a click. Copy the underlying SSH command.\n* **Real-time Status:** Clear visual feedback on tunnel status (Idle, Starting, Running, Stopped, Errors).\n* **Automatic Persistence:** Profiles are saved to `~/.config/ssh_tunnel_manager/config.json`.\n* **Privileged Port Warnings:** Automatic detection and warnings for ports < 1024 that require sudo/root access.\n\n## Configuration\n\nOnce the application is running:\n\n* **Server:** Enter the SSH server address (`user@hostname`).\n* **SSH Port:** Specify the SSH server port (defaults to 22).\n* **Authentication:** Choose between SSH Key (default) or Password authentication.\n * **SSH Key File:** (Optional) Path to your SSH private key (tilde `~` expansion supported).\n * **Password:** Enter your SSH password (requires `sshpass` to be installed).\n* **Port Forwarding:** Add/remove `Local Port` to `Remote Port` mappings.\n* **Profiles:** Save, load, or delete configurations. Changes are auto-saved.\n\nApplication data is stored in `~/.config/ssh_tunnel_manager/config.json`.\n\n## For Developers\n\nIf you want to contribute or run the latest development version:\n\n### Running from Source\n\n1. **Clone the repository:**\n ```bash\n git clone https://github.com/NtWriteCode/ssh-tunnel-manager.git\n cd ssh-tunnel-manager\n ```\n2. **Create a virtual environment (recommended):**\n ```bash\n python -m venv venv\n source venv/bin/activate # On Windows: venv\\Scripts\\activate\n ```\n3. **Install dependencies:**\n ```bash\n pip install -r requirements.txt\n # For development, also install dev dependencies:\n # pip install -r requirements.dev.txt\n ```\n4. **Run the application:**\n ```bash\n python -m ssh_tunnel_manager.main # Or your project's main entry point\n ```\n *(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.)*\n\n### Requirements (for running from source)\n\n* Python 3.x\n* PyQt6 (`PyQt6>=6.0.0`)\n* `typing-extensions>=4.0.0`\n* An SSH client installed and available in your system's PATH (e.g., OpenSSH).\n* `sshpass` (optional, required for password authentication):\n * Ubuntu/Debian: `sudo apt install sshpass`\n * macOS: `brew install sshpass`\n * CentOS/RHEL: `sudo yum install sshpass`\n\n### Building from Source\n\nThe project uses PyInstaller. The GitHub Actions workflow (`.github/workflows/main-build.yml`) handles release builds.\n\nTo build manually:\n1. Ensure you are in the project root with your virtual environment activated.\n2. Install build dependencies: `pip install pyinstaller`\n3. Run PyInstaller (example):\n ```bash\n 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\n ```\n (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.)\n Executables are found in the `dist` directory.\n\n## Contributing\n\nContributions are welcome! Please fork the repository, create a feature branch, commit your changes, and open a pull request.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 NtWriteCode\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n ",
"summary": "A manager for SSH tunnels with a GUI.",
"version": "0.2.4",
"project_urls": {
"Bug Tracker": "https://github.com/NtWriteCode/ssh-tunnel-manager/issues",
"Homepage": "https://github.com/NtWriteCode/ssh-tunnel-manager"
},
"split_keywords": [
"ssh",
" tunnel",
" network",
" gui"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "bc3df45c7cf8cf391c083561138a937cc825db4c8675f9ac30c3fbc85643af83",
"md5": "c83c1185d8032730a8f34fb3f6bad899",
"sha256": "bfdacca0df4e136bedea8038476895d3ce848c568085c66c3dff7c89a5bb951c"
},
"downloads": -1,
"filename": "ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c83c1185d8032730a8f34fb3f6bad899",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 100960,
"upload_time": "2025-08-02T13:36:10",
"upload_time_iso_8601": "2025-08-02T13:36:10.998544Z",
"url": "https://files.pythonhosted.org/packages/bc/3d/f45c7cf8cf391c083561138a937cc825db4c8675f9ac30c3fbc85643af83/ssh_tunnel_manager_gui-0.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2e6d0d022945cd20c7dec9724d2e702622e7bf0f467a6a12d07df88951bbd738",
"md5": "a086d4e1a62a7e30ad6f693a6eaac1e7",
"sha256": "8fda79a97dc46126fcfdecf13bb0ecf538a6445828a28040f707b9708ae6f62c"
},
"downloads": -1,
"filename": "ssh_tunnel_manager_gui-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "a086d4e1a62a7e30ad6f693a6eaac1e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 103018,
"upload_time": "2025-08-02T13:36:12",
"upload_time_iso_8601": "2025-08-02T13:36:12.429159Z",
"url": "https://files.pythonhosted.org/packages/2e/6d/0d022945cd20c7dec9724d2e702622e7bf0f467a6a12d07df88951bbd738/ssh_tunnel_manager_gui-0.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-02 13:36:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NtWriteCode",
"github_project": "ssh-tunnel-manager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "PyQt6",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
">=",
"4.0.0"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"6.0.0"
]
]
}
],
"lcname": "ssh-tunnel-manager-gui"
}