Detailed Project Functionality
The Remote Linux Manager is a secure, multi-threaded GUI application designed for the mass administration of Linux PCs over SSH. While optimized for Ubuntu-based systems, it provides a unified interface for managing any remote Debian based Linux environment.
Demo
1. Centralized PC Management
- Storage: Securely stores hostnames/IPs, usernames, and passwords in a local SQLite database (
pc_manager.db). - Security: Credentials are never stored in plaintext. They are secured using Fernet symmetric encryption with a unique key (
.secret.key) generated on the first run. - Interface: Features a streamlined CRUD interface to Add, Edit, and Delete PC entries via dedicated dialogs.
- mDNS Support: Automatically attempts to resolve hostnames by appending
.local(e.g.,4pibecomes4pi.local) to support Avahi/mDNS discovery.
2. Live Status and Monitoring
- Non-Blocking Status: Uses multi-threading to ping and check SSH responsiveness without freezing the UI.
- Update Detection: Automatically runs
apt updateandapt list --upgradableto report the exact count of pending updates for each machine. - Real-Time Logging: A dedicated activity log displays live connection attempts, command outputs, and SSH/Auth errors.
- Smart Power Monitoring: After a
RebootorShutdown, a background thread polls the PC every 10 seconds to track its transition and confirms when it returns to service.
3. Mass Action Execution
- Multi-Select: Execute actions on a single machine or the entire fleet simultaneously.
- Script Upload & Run: Users can upload and execute custom scripts directly. Once uploaded, the script runs automatically, and all output is captured in real-time within the log view.
- Secure Root Commands: Features Sudo detection for elevated tasks, using the
sudo -Sflag to securely pipe decrypted passwords to the remote shell.- Note: While robust for automation, this is not recommended for interactive scripts requiring manual input.
- One-Click Updates: Run a full system upgrade (
apt-get upgrade -y) across all selected nodes. - Mass Software Install: Prompt for a package list and deploy software (
apt-get install -y) to multiple machines at once.
Technologies and Libraries Used
| Component | Technology / Library | Role & Purpose |
| Language | Python 3 | Core logic and application framework. |
| Remote Access | Paramiko | Handles SSH connections, SFTP uploads, and commands. |
| Persistence | SQLite 3 | Embedded database for secure configuration storage. |
| Data Security | Cryptography (Fernet) | Manages encryption keys and secures SSH credentials. |
| Concurrency | Python threading | Manages async status checks and keeps the GUI responsive. |
| Deployment | Shell Scripts (.sh / .bat) | Automates venv setup and dependency installation. |
| UI Framework | Adaptive UI Bridge | Auto-detects OS: Switches to native macOS libraries on Apple hardware; defaults to Tkinter for Linux/Windows. |
| Theming | Custom CSS / Nord | Implements a modern look using the Nord color palette. |
diddy











naguirre
Freak(leeqingshui)
programmin1
Kevin Harrington