Detailed Project Functionality
The Remote Linux Manager is a secure, multi-threaded GUI application designed for the mass administration of Linux PCs over SSH.
Demo
Ideally this tool will run on an Ubuntu based or derivative system to administrate other Ubuntu based systems.
1. Centralized PC Management
- Storage: Stores the hostname (or IP), username, and password for multiple remote PCs in a local SQLite database (
pc_manager.db). - Security: Passwords are not stored in plaintext; they are secured using Fernet symmetric encryption. A unique key (
.secret.key) is generated and used to encrypt/decrypt credentials. - Interface: Allows users to easily Add, Edit, and Delete PC entries via dedicated dialogs.
- Resolution: Automatically attempts to resolve hostnames by appending
.local(e.g.,4pibecomes4pi.local) to support mDNS/Avahi discovery.
2. Live Status and Monitoring
- Non-Blocking Status Check: Runs multi-threaded checks to determine if a PC is reachable and responsive via SSH.
- Update Detection: Executes a command (
apt updatefollowed byapt list --upgradable) to determine the exact number of pending software updates on each machine. - Real-Time Logging: Provides a live activity log that displays connection attempts, command output, errors (Auth/SSH/Timeout), and success messages.
- Power Cycle Monitoring: After a Reboot or Shutdown command is initiated, a dedicated monitoring thread polls the PC every 10 seconds to track its status (e.g., "Rebooting (Offline)") and confirms its successful return to service or final offline state.
3. Mass Action Execution
- Multi-Select: Users can select and execute actions on multiple PCs simultaneously.
- Secure Command Execution: Commands requiring root privileges use the
sudo -Sflag to securely pipe the decrypted password to the remote machine's standard input. - Run Update: Executes a full system update (
apt update; apt-get upgrade -y) on the selected machines. - Deploy Software: Prompts the user for a list of packages and runs the corresponding installation command (
apt-get install -y) on selected machines. - Reboot/Shutdown: Runs non-blocking power control commands (
sudo -S reboot now &orsudo -S shutdown now &) followed by immediate monitoring.
Technologies and Libraries Used
Remote Access Data Persistence
| Component | Technology / Library | Role |
| Programming Language | Python 3 | |
| Paramiko | SSH connections and executing remote commands. | |
| SQLite 3 | Used for the local, embedded database to store PC configuration details. | |
| Data Security | Cryptography (Fernet) | Used to generate the encryption key and securely encrypt/decrypt sensitive SSH passwords before saving them to the database. |
| Concurrency | Python's threading | Manages simultaneous connections, status checks, and monitoring loops to keep the main GUI responsive. |
| Startup & Setup | Shell Script (manage-pcs.sh) | Handles the essential pre-flight checks: ensures Python/GTK dependencies are installed, creates a virtual environment (venv), and installs required Python packages (paramiko, cryptography) for a simple start. |
| Configuration | CSS Styling | Uses a custom CSS provider to apply the distinctive Nord color palette and ensure a clean, modern look. |
diddy







Kevin Andersson
Roni Bandini
lion mclionhead
Dmitry