# SSH Tools Suite
[](https://python.org)
[](https://pypi.org/project/ssh-tools-suite/)
[](https://pypi.org/project/ssh-tools-suite/)
[](LICENSE)
[](https://github.com/NicholasKozma/ssh_tools_suite)
[](https://nicholaskozma.github.io/ssh_tools_suite/)
> **Professional SSH tunnel management and third-party software installation suite with intuitive GUI**
SSH Tools Suite is a comprehensive toolkit for managing SSH tunnels, streaming RTSP video, and automating third-party software installations. Built with Python and PySide6, it provides both command-line and graphical interfaces for maximum flexibility.
## ✨ Features
### 🔐 SSH Tunnel Manager
- **Multiple Tunnel Types**: Local, Remote, and Dynamic (SOCKS) tunnels
- **Real-time Monitoring**: Live status updates and health checks
- **RTSP Video Streaming**: Stream video securely through SSH tunnels
- **SSH Key Management**: Generate, deploy, and manage SSH keys
- **Network Tools**: Port scanner, connection tester, and network visualizer
- **SFTP File Browser**: Browse and transfer files with drag-and-drop support
- **Configuration Management**: Import/export tunnel configurations
- **System Tray Integration**: Minimize to tray with notifications
### 🛠️ Third-Party Installer
- **Automated Installation**: Install external tools and dependencies
- **Configuration Validation**: Ensure proper tool setup
- **Dependency Management**: Handle complex installation requirements
- **GUI and CLI Modes**: Flexible installation options
### 🎥 RTSP Streaming
- **Video Playback**: View RTSP streams through secure tunnels
- **Recording Capabilities**: Save streams to local files
- **Multiple Stream Support**: Handle concurrent video feeds
- **Quality Controls**: Adjust stream parameters
## 🚀 Quick Start
### Installation Options
#### Option 1: PyPI Installation (Recommended for Python Users)
```bash
# Install the latest stable version from PyPI
pip install ssh-tools-suite
```
#### Option 2: Standalone Executables (No Python Required)
For users who prefer not to install Python or want a portable solution, download pre-built executables from our [**GitHub Releases**](https://github.com/NicholasKozma/ssh_tools_suite/releases) page:
- **Windows**: Download and extract `SSH-Tunnel-Manager-v*.*.*.zip` or `SSH-Tools-Installer-v*.*.*.zip`
- **macOS**: Download `SSH-Tools-Suite-v*.*.*.dmg` (coming soon)
- **Linux**: Download `SSH-Tools-Suite-v*.*.*.AppImage` (coming soon)
**Benefits of Standalone Executables:**
- ✅ No Python installation required
- ✅ Fast startup (~2-3 seconds)
- ✅ Portable - run from any folder
- ✅ All dependencies included
- ✅ Perfect for end users and system administrators
#### Option 3: From Source
```bash
# Install from GitHub source
git clone https://github.com/NicholasKozma/ssh_tools_suite.git
cd ssh_tools_suite
pip install -e .
```
### Verify Installation
```bash
# Check if installation was successful
ssh-tunnel-manager --version
ssh-tools-installer --version
```
### Basic Usage
#### GUI Mode (Recommended)
```bash
# Start SSH Tunnel Manager GUI
ssh-tunnel-manager-gui
# Start Third-Party Installer GUI
third-party-installer-gui
```
#### Command Line Mode
```bash
# SSH Tunnel Manager CLI
ssh-tunnel-manager --help
# Third-Party Installer CLI
third-party-installer --help
```
### Create Your First Tunnel
1. **Launch the GUI**: `ssh-tunnel-manager-gui`
2. **Add New Tunnel**: Click "Add Tunnel" button
3. **Configure Connection**:
- **Name**: "Database Tunnel"
- **SSH Host**: `jumpserver.example.com`
- **Username**: Your SSH username
- **Local Port**: `5432`
- **Remote Host**: `database.internal`
- **Remote Port**: `5432`
4. **Start Tunnel**: Click "Start" button
5. **Connect**: Use `localhost:5432` to access your database
## 📚 Documentation
- **[Full Documentation](https://nicholaskozma.github.io/ssh_tools_suite/)** - Complete guides and API reference
- **[Getting Started](docs/getting-started/installation.md)** - Installation and setup
- **[User Guides](docs/guides/creating-tunnels.md)** - Step-by-step tutorials
- **[API Reference](docs/ssh-tunnel-manager/api-reference.md)** - Developer documentation
- **[Contributing](CONTRIBUTING.md)** - How to contribute to the project
## 🖼️ Screenshots
### SSH Tunnel Manager

*Main tunnel management interface with real-time status monitoring*
### RTSP Video Streaming

*Secure video streaming through SSH tunnels*
### Network Scanner

*Built-in network discovery and port scanning tools*
## 🛠️ Development
### Prerequisites
- **Python 3.8+**
- **Git**
- **Virtual Environment** (recommended)
### Setup Development Environment
```bash
# Clone the repository
git clone https://github.com/NicholasKozma/ssh_tools_suite.git
cd ssh_tools_suite
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\\Scripts\\activate
# Install development dependencies
pip install -e .[dev,gui,rtsp]
```
### Running Tests
```bash
# Run all tests
pytest
# Run with coverage
pytest --cov=src --cov-report=html
# Run specific test categories
pytest tests/unit/
pytest tests/integration/
pytest tests/gui/
```
### Code Quality
```bash
# Format code
black src/ tests/
# Lint code
flake8 src/ tests/
# Type checking
mypy src/
```
### Documentation
```bash
# Serve documentation locally
mkdocs serve
# Build documentation
mkdocs build
```
## 📋 Requirements
### System Requirements
- **Operating System**: Windows 10/11, Linux, macOS
- **Python**: 3.8 or higher
- **Memory**: 512 MB RAM minimum
- **Storage**: 100 MB free space
### Dependencies
- **Core**: `paramiko`, `cryptography`, `psutil`
- **GUI**: `PySide6` (optional, for graphical interface)
- **RTSP**: `opencv-python` (optional, for video streaming)
- **Development**: `pytest`, `black`, `flake8`, `mypy`
## 🔧 Configuration
### Configuration Files
```
~/.ssh-tools-suite/
├── config.json # Main configuration
├── tunnels.json # Tunnel configurations
├── logs/ # Application logs
└── keys/ # SSH keys storage
```
### Environment Variables
```bash
# Custom configuration directory
export SSH_TOOLS_CONFIG_DIR="/path/to/config"
# Enable debug logging
export SSH_TOOLS_DEBUG=1
# Default SSH key path
export SSH_TOOLS_DEFAULT_KEY="/path/to/key"
```
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### How to Contribute
1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Commit** your changes (`git commit -m 'Add amazing feature'`)
4. **Push** to the branch (`git push origin feature/amazing-feature`)
5. **Open** a Pull Request
### Development Priorities
- Cross-platform compatibility improvements
- Performance optimizations
- New tunnel types and protocols
- Enhanced GUI features
- Documentation and examples
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- **[Paramiko](https://www.paramiko.org/)** - SSH implementation for Python
- **[PySide6](https://doc.qt.io/qtforpython/)** - Qt for Python GUI framework
- **[OpenCV](https://opencv.org/)** - Computer vision and video processing
- **[MkDocs](https://www.mkdocs.org/)** - Documentation generation
## 🐛 Issues and Support
- **Bug Reports**: [GitHub Issues](https://github.com/NicholasKozma/ssh_tools_suite/issues)
- **Feature Requests**: [GitHub Discussions](https://github.com/NicholasKozma/ssh_tools_suite/discussions)
- **Documentation**: [Full Documentation](https://nicholaskozma.github.io/ssh_tools_suite/)
## 🔗 Links
- **Homepage**: [https://ssh-tools-suite.github.io/](https://ssh-tools-suite.github.io/)
- **Documentation**: [https://nicholaskozma.github.io/ssh_tools_suite/](https://nicholaskozma.github.io/ssh_tools_suite/)
- **PyPI**: [https://pypi.org/project/ssh-tools-suite/](https://pypi.org/project/ssh-tools-suite/)
---
<div align="center">
**Made with ❤️ by the SSH Tools Suite Team**
[⭐ Star us on GitHub](https://github.com/NicholasKozma/ssh_tools_suite) • [📖 Read the Docs](https://nicholaskozma.github.io/ssh_tools_suite/) • [💬 Join Discussions](https://github.com/NicholasKozma/ssh_tools_suite/discussions)
</div>
Raw data
{
"_id": null,
"home_page": "https://github.com/NicholasKozma/ssh_tools_suite",
"name": "ssh-tools-suite",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ssh, tunnel, networking, security, gui, rtsp, vpn",
"author": "Nicholas Kozma",
"author_email": "Nicholas Kozma <Nicholas.Kozma@us.bosch.com>",
"download_url": "https://files.pythonhosted.org/packages/66/7f/5482cf7c62d4c75ae924aa87ba6b3d01d9881b4cec17967b25f71ce1ad5b/ssh_tools_suite-1.0.9.tar.gz",
"platform": null,
"description": "# SSH Tools Suite\n\n[](https://python.org)\n[](https://pypi.org/project/ssh-tools-suite/)\n[](https://pypi.org/project/ssh-tools-suite/)\n[](LICENSE)\n[](https://github.com/NicholasKozma/ssh_tools_suite)\n[](https://nicholaskozma.github.io/ssh_tools_suite/)\n\n> **Professional SSH tunnel management and third-party software installation suite with intuitive GUI**\n\nSSH Tools Suite is a comprehensive toolkit for managing SSH tunnels, streaming RTSP video, and automating third-party software installations. Built with Python and PySide6, it provides both command-line and graphical interfaces for maximum flexibility.\n\n## \u2728 Features\n\n### \ud83d\udd10 SSH Tunnel Manager\n- **Multiple Tunnel Types**: Local, Remote, and Dynamic (SOCKS) tunnels\n- **Real-time Monitoring**: Live status updates and health checks\n- **RTSP Video Streaming**: Stream video securely through SSH tunnels\n- **SSH Key Management**: Generate, deploy, and manage SSH keys\n- **Network Tools**: Port scanner, connection tester, and network visualizer\n- **SFTP File Browser**: Browse and transfer files with drag-and-drop support\n- **Configuration Management**: Import/export tunnel configurations\n- **System Tray Integration**: Minimize to tray with notifications\n\n### \ud83d\udee0\ufe0f Third-Party Installer\n- **Automated Installation**: Install external tools and dependencies\n- **Configuration Validation**: Ensure proper tool setup\n- **Dependency Management**: Handle complex installation requirements\n- **GUI and CLI Modes**: Flexible installation options\n\n### \ud83c\udfa5 RTSP Streaming\n- **Video Playback**: View RTSP streams through secure tunnels\n- **Recording Capabilities**: Save streams to local files\n- **Multiple Stream Support**: Handle concurrent video feeds\n- **Quality Controls**: Adjust stream parameters\n\n## \ud83d\ude80 Quick Start\n\n### Installation Options\n\n#### Option 1: PyPI Installation (Recommended for Python Users)\n```bash\n# Install the latest stable version from PyPI\npip install ssh-tools-suite\n```\n\n#### Option 2: Standalone Executables (No Python Required)\n\nFor users who prefer not to install Python or want a portable solution, download pre-built executables from our [**GitHub Releases**](https://github.com/NicholasKozma/ssh_tools_suite/releases) page:\n\n- **Windows**: Download and extract `SSH-Tunnel-Manager-v*.*.*.zip` or `SSH-Tools-Installer-v*.*.*.zip`\n- **macOS**: Download `SSH-Tools-Suite-v*.*.*.dmg` (coming soon)\n- **Linux**: Download `SSH-Tools-Suite-v*.*.*.AppImage` (coming soon)\n\n**Benefits of Standalone Executables:**\n- \u2705 No Python installation required\n- \u2705 Fast startup (~2-3 seconds)\n- \u2705 Portable - run from any folder\n- \u2705 All dependencies included\n- \u2705 Perfect for end users and system administrators\n\n#### Option 3: From Source\n```bash\n# Install from GitHub source\ngit clone https://github.com/NicholasKozma/ssh_tools_suite.git\ncd ssh_tools_suite\npip install -e .\n```\n\n### Verify Installation\n```bash\n# Check if installation was successful\nssh-tunnel-manager --version\nssh-tools-installer --version\n```\n\n### Basic Usage\n\n#### GUI Mode (Recommended)\n```bash\n# Start SSH Tunnel Manager GUI\nssh-tunnel-manager-gui\n\n# Start Third-Party Installer GUI \nthird-party-installer-gui\n```\n\n#### Command Line Mode\n```bash\n# SSH Tunnel Manager CLI\nssh-tunnel-manager --help\n\n# Third-Party Installer CLI\nthird-party-installer --help\n```\n\n### Create Your First Tunnel\n\n1. **Launch the GUI**: `ssh-tunnel-manager-gui`\n2. **Add New Tunnel**: Click \"Add Tunnel\" button\n3. **Configure Connection**:\n - **Name**: \"Database Tunnel\"\n - **SSH Host**: `jumpserver.example.com`\n - **Username**: Your SSH username\n - **Local Port**: `5432`\n - **Remote Host**: `database.internal`\n - **Remote Port**: `5432`\n4. **Start Tunnel**: Click \"Start\" button\n5. **Connect**: Use `localhost:5432` to access your database\n\n## \ud83d\udcda Documentation\n\n- **[Full Documentation](https://nicholaskozma.github.io/ssh_tools_suite/)** - Complete guides and API reference\n- **[Getting Started](docs/getting-started/installation.md)** - Installation and setup\n- **[User Guides](docs/guides/creating-tunnels.md)** - Step-by-step tutorials \n- **[API Reference](docs/ssh-tunnel-manager/api-reference.md)** - Developer documentation\n- **[Contributing](CONTRIBUTING.md)** - How to contribute to the project\n\n## \ud83d\uddbc\ufe0f Screenshots\n\n### SSH Tunnel Manager\n\n*Main tunnel management interface with real-time status monitoring*\n\n### RTSP Video Streaming\n\n*Secure video streaming through SSH tunnels*\n\n### Network Scanner\n\n*Built-in network discovery and port scanning tools*\n\n## \ud83d\udee0\ufe0f Development\n\n### Prerequisites\n\n- **Python 3.8+**\n- **Git**\n- **Virtual Environment** (recommended)\n\n### Setup Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/NicholasKozma/ssh_tools_suite.git\ncd ssh_tools_suite\n\n# Create virtual environment\npython -m venv .venv\nsource .venv/bin/activate # On Windows: .venv\\\\Scripts\\\\activate\n\n# Install development dependencies\npip install -e .[dev,gui,rtsp]\n```\n\n### Running Tests\n\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=src --cov-report=html\n\n# Run specific test categories\npytest tests/unit/\npytest tests/integration/\npytest tests/gui/\n```\n\n### Code Quality\n\n```bash\n# Format code\nblack src/ tests/\n\n# Lint code\nflake8 src/ tests/\n\n# Type checking\nmypy src/\n```\n\n### Documentation\n\n```bash\n# Serve documentation locally\nmkdocs serve\n\n# Build documentation\nmkdocs build\n```\n\n## \ud83d\udccb Requirements\n\n### System Requirements\n- **Operating System**: Windows 10/11, Linux, macOS\n- **Python**: 3.8 or higher\n- **Memory**: 512 MB RAM minimum\n- **Storage**: 100 MB free space\n\n### Dependencies\n- **Core**: `paramiko`, `cryptography`, `psutil`\n- **GUI**: `PySide6` (optional, for graphical interface)\n- **RTSP**: `opencv-python` (optional, for video streaming)\n- **Development**: `pytest`, `black`, `flake8`, `mypy`\n\n## \ud83d\udd27 Configuration\n\n### Configuration Files\n\n```\n~/.ssh-tools-suite/\n\u251c\u2500\u2500 config.json # Main configuration\n\u251c\u2500\u2500 tunnels.json # Tunnel configurations \n\u251c\u2500\u2500 logs/ # Application logs\n\u2514\u2500\u2500 keys/ # SSH keys storage\n```\n\n### Environment Variables\n\n```bash\n# Custom configuration directory\nexport SSH_TOOLS_CONFIG_DIR=\"/path/to/config\"\n\n# Enable debug logging\nexport SSH_TOOLS_DEBUG=1\n\n# Default SSH key path\nexport SSH_TOOLS_DEFAULT_KEY=\"/path/to/key\"\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### How to Contribute\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Priorities\n\n- Cross-platform compatibility improvements\n- Performance optimizations \n- New tunnel types and protocols\n- Enhanced GUI features\n- Documentation and examples\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **[Paramiko](https://www.paramiko.org/)** - SSH implementation for Python\n- **[PySide6](https://doc.qt.io/qtforpython/)** - Qt for Python GUI framework\n- **[OpenCV](https://opencv.org/)** - Computer vision and video processing\n- **[MkDocs](https://www.mkdocs.org/)** - Documentation generation\n\n## \ud83d\udc1b Issues and Support\n\n- **Bug Reports**: [GitHub Issues](https://github.com/NicholasKozma/ssh_tools_suite/issues)\n- **Feature Requests**: [GitHub Discussions](https://github.com/NicholasKozma/ssh_tools_suite/discussions)\n- **Documentation**: [Full Documentation](https://nicholaskozma.github.io/ssh_tools_suite/)\n\n## \ud83d\udd17 Links\n\n- **Homepage**: [https://ssh-tools-suite.github.io/](https://ssh-tools-suite.github.io/)\n- **Documentation**: [https://nicholaskozma.github.io/ssh_tools_suite/](https://nicholaskozma.github.io/ssh_tools_suite/)\n- **PyPI**: [https://pypi.org/project/ssh-tools-suite/](https://pypi.org/project/ssh-tools-suite/)\n\n---\n\n<div align=\"center\">\n\n**Made with \u2764\ufe0f by the SSH Tools Suite Team**\n\n[\u2b50 Star us on GitHub](https://github.com/NicholasKozma/ssh_tools_suite) \u2022 [\ud83d\udcd6 Read the Docs](https://nicholaskozma.github.io/ssh_tools_suite/) \u2022 [\ud83d\udcac Join Discussions](https://github.com/NicholasKozma/ssh_tools_suite/discussions)\n\n</div>\n",
"bugtrack_url": null,
"license": null,
"summary": "Comprehensive SSH Tools Suite with Tunnel Manager and Third-Party Installer",
"version": "1.0.9",
"project_urls": {
"Bug Reports": "https://github.com/NicholasKozma/ssh_tools_suite/issues",
"Changelog": "https://github.com/NicholasKozma/ssh_tools_suite/blob/main/CHANGELOG.md",
"Documentation": "https://nicholaskozma.github.io/ssh_tools_suite/",
"Homepage": "https://github.com/NicholasKozma/ssh_tools_suite",
"PyPI": "https://pypi.org/project/ssh-tools-suite/",
"Repository": "https://github.com/NicholasKozma/ssh_tools_suite.git"
},
"split_keywords": [
"ssh",
" tunnel",
" networking",
" security",
" gui",
" rtsp",
" vpn"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "63e6b00b822c0f6cae729038aff25541b0615ee05259cb493e017cba7ca1b72d",
"md5": "d4927b683c6dd396e2d0afd1e1865986",
"sha256": "74744521950c9dc623e83368ae42524a28bf7dcc783ee4bbf039431c7242b12e"
},
"downloads": -1,
"filename": "ssh_tools_suite-1.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d4927b683c6dd396e2d0afd1e1865986",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 6932065,
"upload_time": "2025-07-16T18:26:21",
"upload_time_iso_8601": "2025-07-16T18:26:21.825673Z",
"url": "https://files.pythonhosted.org/packages/63/e6/b00b822c0f6cae729038aff25541b0615ee05259cb493e017cba7ca1b72d/ssh_tools_suite-1.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "667f5482cf7c62d4c75ae924aa87ba6b3d01d9881b4cec17967b25f71ce1ad5b",
"md5": "f61d2da668245c129cbdde235bd39efe",
"sha256": "49b74d88f7ab2cca8030aceafe7a84c0310e82c3bee8910df3e51e63c9428655"
},
"downloads": -1,
"filename": "ssh_tools_suite-1.0.9.tar.gz",
"has_sig": false,
"md5_digest": "f61d2da668245c129cbdde235bd39efe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 6996705,
"upload_time": "2025-07-16T18:26:24",
"upload_time_iso_8601": "2025-07-16T18:26:24.653056Z",
"url": "https://files.pythonhosted.org/packages/66/7f/5482cf7c62d4c75ae924aa87ba6b3d01d9881b4cec17967b25f71ce1ad5b/ssh_tools_suite-1.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 18:26:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NicholasKozma",
"github_project": "ssh_tools_suite",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "PySide6",
"specs": [
[
">=",
"6.5.0"
]
]
},
{
"name": "opencv-python",
"specs": [
[
">=",
"4.8.0"
]
]
},
{
"name": "paramiko",
"specs": [
[
">=",
"2.8.0"
]
]
},
{
"name": "cryptography",
"specs": [
[
">=",
"3.4.0"
]
]
},
{
"name": "WMI",
"specs": [
[
">=",
"1.5.1"
]
]
},
{
"name": "pywin32",
"specs": [
[
">=",
"305"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.28.0"
]
]
},
{
"name": "psutil",
"specs": [
[
">=",
"5.9.0"
]
]
},
{
"name": "pytest",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "pytest-qt",
"specs": [
[
">=",
"4.0.0"
]
]
},
{
"name": "pytest-mock",
"specs": [
[
">=",
"3.0.0"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
">=",
"4.0.0"
]
]
}
],
"lcname": "ssh-tools-suite"
}