The Linux alternative to MobaXterm — everything in one window: SSH, RDP, VNC, SFTP, FTP, Telnet, Mosh, Serial.
Written in Python with GTK3 and native VTE terminal. Works on X11 and Wayland without XWayland.
| Version | Folder | Framework | Terminal | Wayland | Status |
|---|---|---|---|---|---|
| GTK3 | gtk3/ |
GTK3 (PyGObject) | Native VTE | ✅ Native | Active development |
| PyQt6 | pyqt6/ |
PyQt6 | xterm | XWayland required | Critical bugfixes only |
The
pyqt6/folder contains the legacy version (critical bugfixes only); new installations should prefer GTK3.
| PCM | MobaXterm | Remmina | Asbru | mRemoteNG | |
|---|---|---|---|---|---|
| SSH with integrated terminal | ✅ Native VTE | ✅ | ❌ RDP/VNC only | ✅ xterm | ✅ |
| RDP + VNC + SSH + FTP in one tool | ✅ | ✅ | partial | ✅ | ✅ |
| Integrated SFTP/FTP browser | ✅ dual-pane | ✅ dual-pane | ❌ | partial | ❌ |
| Directory sync local↔remote | ✅ | ✅ | ❌ | ❌ | ❌ |
| Graphical SSH tunnels | ✅ | ✅ | ❌ | ✅ | ❌ |
| Broadcast to multiple terminals | ✅ | ✅ MultiExec | ❌ | ✅ cluster | ❌ |
| Live system monitor panel | ✅ | ✅ | ❌ | ❌ | ❌ |
| KeePassXC integration | ✅ | ❌ | ❌ | ❌ | ❌ |
| Native Wayland (no XWayland) | ✅ | ❌ Windows only | partial | ❌ | ❌ Linux |
| Password NEVER on command line | ✅ autotyped into terminal | ✅ | ❌ | — | |
| Session restore on startup | ✅ | ✅ | ❌ | partial | ❌ |
| Command line launch (URI) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Human-readable config | ✅ JSON | ❌ proprietary | complex XML | YAML | XML |
| Platform | Linux / FreeBSD | Windows only | Linux | Linux | Windows |
| License | EUPL-1.2 | Proprietary | GPL-2 | GPL-3 | GPL-2 |
SSH · SFTP · FTP/FTPS · RDP · VNC · Telnet · Mosh · Serial · Exec · SSH Tunnel
| Protocol | How it opens | Strengths |
|---|---|---|
| SSH | Internal VTE tab or external terminal | Jump Host, X11, Agent Forward, VPN pre-cmd, macros |
| SFTP | Integrated dual-pane browser | Drag & drop, transfer queue with progress/speed/ETA, rename, directory sync local↔remote |
| FTP / FTPS | Integrated browser or file manager | Explicit TLS, PASV mode |
| RDP | Internal panel or external window | xfreerdp3/xfreerdp/rdesktop, multi-monitor |
| VNC | Native gtk-vnc or external client | Scale, grab input, screenshot |
| Telnet | Internal VTE tab | — |
| Mosh | Internal VTE tab | Resilient to disconnections |
| Serial | Internal VTE tab | Baud, parity, stop bits configurable |
| Exec | Internal VTE tab | Any shell command in a tab |
| SSH Tunnel | Background, managed graphically | SOCKS -D, local -L, remote -R |
- Password never on command line: PCM types the password directly into the terminal when the server asks for it, just like a user would. No
sshpass, nothing visible inps aux. - SSH_ASKPASS fallback for OpenSSH ≥ 8.4: the helper script is created in
~/.cache/pcm/(permissions0700, not in/tmp) and deleted after 5 seconds. The password is passed via environment variable only, never written to the file. - Command injection protection: all profile parameters (host, port, user, device, etc.) are sanitised with
shlex.quote()before use in shell commands. Pre-commands run withshell=False. - Protected credential files (
connections.json,pcm_settings.json,audit_log.json): written with permissions0600— readable only by the owner. - SSH host key verification enabled:
StrictHostKeyChecking=yeson all connections. The SFTP browser uses paramikoRejectPolicywith automaticknown_hostsloading. - AES-256 encryption (Fernet + PBKDF2-SHA256, 480k iterations): usernames and passwords in
connections.jsonencrypted with a master password. The key never touches the disk. The verification token uses a random canary to prevent offline dictionary attacks. - Audit log with hash chaining: each entry includes the SHA-256 of the previous entry — tampering is detectable.
- KeePassXC integration via Browser Protocol v2 (NaCl box): find and fill credentials directly from the open KeePassXC database — no browser needed.
- SSH key management: generate, copy to server, display public key.
- Agent Forwarding (
-A): propagates ssh-agent keys for multiple hops without copying private keys.
Available for SSH, VNC (Linux) and RDP (Windows) sessions, configurable per-session in the Panels tab of the session dialog. Opens alongside the terminal without a new window. The tab shows only the sections relevant to the selected protocol.
| Section | What it shows |
|---|---|
| System Overview | CPU % (progress bar) and RAM usage (used / total), updated every 2 seconds |
| Running Processes | Sortable table (click any column header) with PID, CPU%, Mem%, Command — kill button per process |
| Disk Usage | One card per partition: mount point, device, used/total, free space, progress bar |
| Network Usage | Download/Upload speed per second with dual-line sparkline (60-sample history), interface selector |
| Logs | Streaming journalctl or tail -f viewer with regex filter, level colouring and auto-scroll (hidden on Windows) |
Protocol support matrix:
- SSH / Mosh: full panel (SFTP browser + monitor)
- VNC (Linux): SFTP browser + SSH monitor with configurable SSH port
- RDP (Windows): SFTP browser + PowerShell-based monitor over OpenSSH; log tab hidden
- FTP, Telnet, Serial, Exec: informational label — no panels available
The panel reuses the monitor's existing SSH connection — zero extra TCP connections.
Each section can be individually enabled or disabled per session.
- Native VTE — zero X11 dependencies, works on pure Wayland
- Vertical/horizontal split — multiple sessions side by side in one window
- Themes: Dracula, Nord, Gruvbox, Solarized Dark/Light, One Dark, Monokai, Cobalt, Tomorrow Night and more
- Per-session macros — commands sent with one click from the sidebar
- Snippet library — global reusable commands accessible from the right-click context menu ("Insert snippet…")
- Terminal broadcast — send the same text to all selected terminals simultaneously (ideal for clusters)
- Multi-exec — run a command across multiple sessions in sequence
- Ctrl+Wheel to change font size in the VTE terminal
- File output logging per session (via
script(1)) - Configurable or infinite scrollback per session
- Local pre-command: activate VPN or mount volume before opening the connection
- Organized by group with live search bar
- Active session indicator — green dot ● next to session names with an open connection
- Recent sessions section at the top of the sidebar: last 20 sessions with timestamps
- Quick Connect:
user@host:portfrom the toolbar — connects without saving a profile - Double-click to connect, right-click for rich context menu on both the session list and the open tab — including "View logs…" and "System monitor…" for SSH sessions
- TCP Ping from the sidebar — checks reachability on the configured port (ms)
- Session restore — optionally save open sessions on close and reopen them automatically at the next startup (Settings → General)
- Duplicate, edit, delete, export
.shscript to reopen from terminal - Import from: Remmina (
.remmina), Remote Desktop Manager (.rdm/.json), PuTTY (~/.putty/sessions/),~/.ssh/config, MobaXterm (.mobaXterm)
- Graphical SSH tunnels — start, stop, monitor background tunnels; toolbar indicator with quick popup to stop tunnels without opening the full manager
- Snippet library — global command library stored in
pcm_settings.json, accessible from the Tools menu and from the terminal right-click context menu ("Insert snippet…"); supports categories and full CRUD management - SFTP file editor — double-click or right-click "Edit file…" in the SFTP browser opens the file in the configured external GUI editor (downloads to a temp file, watches for changes on exit, auto-uploads back); falls back to a built-in GtkSource/GtkTextView editor for terminal editors or when no editor is set
- Cron manager — right-click on an SSH tab → "Cron Manager…"; connects via paramiko, reads/writes the remote user crontab, presents it as an editable TreeView with add/edit/delete dialogs and support for
@reboot/@daily/@weeklyshortcuts - SFTP directory sync — compare a local folder with a remote one (by size + modification time), review the diff table with per-file direction control, execute using the existing transfer queue with progress/speed/ETA
- SFTP progress bar — the lateral SFTP panel shows a real-time progress bar during upload and download (via paramiko callback)
- Local FTP server (pyftpdlib) — expose a local folder via FTP/FTPS in one click
- Global variables
{NAME}— reusable in commands across all sessions - Wake-on-LAN — sends magic packet before connecting
- Audit log — connection history with timestamp, duration, protocol, status; exportable to CSV
- Dependency checker — automatically checks which tools are installed at startup
5 complete languages: 🇮🇹 Italiano · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español
Instant language change from settings without restart.
![]() Main window: group sidebar with Recent section, embedded SSH terminal tab open, connection status bar |
![]() |
|
| Notes tab — free-text field for annotations attached to the session |
![]() |
![]() |
| Connection tab — host, port 3389, user, KeePassXC integration | Advanced tab — xfreerdp3 client, NTLM/Kerberos auth, domain, fullscreen, clipboard, local folders, monitor, open mode |
![]() |
![]() |
| Connection tab — host, port 5900, user, KeePassXC integration | Advanced tab — open with embedded gtk-vnc or external client, color depth, quality |
![]() |
![]() |
| Mosh connection — host, SSH port, user, password, private key | Serial connection — device (/dev/ttyUSB0), baud rate, data bits, parity, stop bits |
![]() |
|
| Exec protocol — run any shell command in a dedicated VTE tab |
![]() Integrated SFTP browser — local and remote panels side by side, upload/download, transfer queue, drag & drop |
![]() |
![]() |
| Quick Connect — instant connection without saving a profile, choose protocol, host, port, user, password | Credential unlock — master password to decrypt saved credentials (AES-256) |
![]() |
|
| Import sessions — from Remmina (.remmina), Remote Desktop Manager (.rdm/.json), PuTTY, ~/.ssh/config, MobaXterm (.mobaXterm) |
PCM accepts a URI on startup or while already running — in the latter case the connection opens as a new tab in the existing window, without prompting for the master password again.
# Open saved session "jiraapp" (looks up by name, then by hostname)
python3 PCM.py ssh://jiraapp
# Ad-hoc connection (no saved session needed)
python3 PCM.py ssh://admin@192.168.1.10:2222Supported schemes: ssh:// rdp:// vnc:// sftp:// ftp:// ftps:// telnet:// mosh://
For the full reference with all examples, see the built-in manual (Help menu).
The latest release is available on GitHub Releases with:
| Format | Notes |
|---|---|
AppImage (PCM-N-x86_64.AppImage) |
Self-contained, no installation needed. Requires libgtk-3-0 + libvte-2.91-0 on the system. |
.deb |
Debian / Ubuntu / Linux Mint |
.tar.gz / .zip |
Any distribution |
chmod +x PCM-*-x86_64.AppImage
./PCM-*-x86_64.AppImageConfiguration and sessions are stored in ~/.config/pcm/ (persistent across updates).
git clone https://github.com/buzzqw/Python_Connection_Manager.git
cd Python_Connection_Manager
bash setup.sh
cd gtk3
python3 PCM.pyThe
setup.shscript detects the distribution and installs system dependencies (GTK3, VTE, gtk-vnc) and Python packages (paramiko, cryptography, pyftpdlib). It also creates a.desktoplauncher in the application menu.
# Check dependencies only, without installing:
bash setup.sh --checkDebian / Ubuntu / Linux Mint
sudo apt install \
python3 python3-gi python3-gi-cairo \
gir1.2-gtk-3.0 gir1.2-vte-2.91 gir1.2-gtk-vnc-2.0 \
openssh-client mosh freerdp3-x11 tigervnc-viewer \
xdotool xdg-utils wakeonlan
pip install --user cryptography paramiko pyftpdlibArch Linux
sudo pacman -Sy --needed \
python python-gobject gtk3 vte3 gtk-vnc \
openssh mosh freerdp tigervnc xdotool xdg-utils wol \
python-cryptography python-paramiko python-pyftpdlibFedora
sudo dnf install \
python3-gobject gtk3 vte291 gtk-vnc2 \
openssh-clients mosh freerdp tigervnc xdotool xdg-utils
pip install --user cryptography paramiko pyftpdlibopenSUSE
sudo zypper install \
python3-gobject typelib-1_0-Gtk-3_0 \
typelib-1_0-Vte-2.91 typelib-1_0-GtkVnc-2_0 \
openssh mosh freerdp tigervnc xdotool xdg-utils
pip install --user cryptography paramiko pyftpdlibFreeBSD
sudo pkg install \
python3 py311-gobject gtk3 vte3 gtk-vnc \
mosh freerdp3 tigervnc-viewer xdotool wakeonlan \
py311-cryptography py311-paramiko py311-pyftpdlibCritical bugfixes only. See
pyqt6/README.mdfor installation instructions.
| Package | Feature enabled |
|---|---|
gir1.2-gtk-vnc-2.0 / gtk-vnc |
Native embedded VNC (recommended) |
tigervnc-viewer / xtightvncviewer |
VNC via external client (fallback) |
freerdp3-x11 / xfreerdp |
RDP |
mosh |
Mosh connections |
picocom / minicom |
Serial ports |
xdotool |
RDP in internal panel (requires XWayland) |
wakeonlan / wol |
Wake-on-LAN |
keepassxc |
KeePassXC integration |
pynacl |
KeePassXC Browser Protocol v2 encryption |
GTK3 + VTE work natively on Wayland without XWayland.
The only exception is the RDP internal panel mode (embedding xfreerdp via xdotool), which requires XWayland. For pure Wayland use, set RDP to "External window".
The gtk-vnc VNC viewer works natively on Wayland.
| File | Contents |
|---|---|
gtk3/connections.json |
Session profiles — human-readable JSON, editable by hand. Permissions 0600. |
gtk3/pcm_settings.json |
Global settings, shortcuts, recent sessions. Permissions 0600. |
gtk3/audit_log.json |
Connection audit log with SHA-256 hash chaining. Permissions 0600. |
~/.local/share/pcm/logs/ |
Terminal output logs (default), path configurable |
~/.cache/pcm/ |
SSH_ASKPASS temp files (dir 0700, deleted after 5s) |
AppImage: when running as AppImage, the three JSON files above are stored in
~/.config/pcm/(the AppImage filesystem is read-only). Configuration persists across AppImage updates.
If you find PCM useful and want to thank the developer, you can buy him a coffee via PayPal. Any contribution is greatly appreciated and helps keep the project alive!
Thank you so much!
Andres Zanzani — license EUPL-1.2
L'alternativa Linux a MobaXterm — tutto in una finestra: SSH, RDP, VNC, SFTP, FTP, Telnet, Mosh, Seriale.
Scritto in Python con GTK3 e terminale VTE nativo. Funziona su X11 e Wayland senza XWayland.
📦 Download ultima versione — disponibile su GitHub Releases: AppImage (pronto all'uso), pacchetto
.debper Debian/Ubuntu, archivio.tar.gze.zip.
| Versione | Cartella | Framework | Terminale | Wayland | Stato |
|---|---|---|---|---|---|
| GTK3 | gtk3/ |
GTK3 (PyGObject) | VTE nativo | ✅ Nativo | Sviluppo attivo |
| PyQt6 | pyqt6/ |
PyQt6 | xterm | XWayland richiesto | Solo bugfix critici |
La cartella
pyqt6/contiene la versione legacy (solo bugfix critici); le nuove installazioni devono preferire GTK3.
| PCM | MobaXterm | Remmina | Asbru | mRemoteNG | |
|---|---|---|---|---|---|
| SSH con terminale integrato | ✅ VTE nativo | ✅ | ❌ solo RDP/VNC | ✅ xterm | ✅ |
| RDP + VNC + SSH + FTP in un tool | ✅ | ✅ | parziale | ✅ | ✅ |
| Browser SFTP/FTP integrato | ✅ dual-pane | ✅ dual-pane | ❌ | parziale | ❌ |
| Sincronizzazione directory locale↔remota | ✅ | ✅ | ❌ | ❌ | ❌ |
| Tunnel SSH grafici | ✅ | ✅ | ❌ | ✅ | ❌ |
| Broadcast a più terminali | ✅ | ✅ MultiExec | ❌ | ✅ cluster | ❌ |
| Pannello monitor sistema live | ✅ | ✅ | ❌ | ❌ | ❌ |
| KeePassXC integrato | ✅ | ❌ | ❌ | ❌ | ❌ |
| Wayland nativo (no XWayland) | ✅ | ❌ solo Windows | parziale | ❌ | ❌ Linux |
| Password MAI sulla command line | ✅ automaticamente digitata nel terminale | ✅ | ❌ | — | |
| Ripristino sessioni all'avvio | ✅ | ✅ | ❌ | parziale | ❌ |
| Avvio da riga di comando (URI) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Configurazione leggibile | ✅ JSON | ❌ proprietario | XML complesso | YAML | XML |
| Piattaforma | Linux / FreeBSD | solo Windows | Linux | Linux | Windows |
| Licenza | EUPL-1.2 | Proprietario | GPL-2 | GPL-3 | GPL-2 |
SSH · SFTP · FTP/FTPS · RDP · VNC · Telnet · Mosh · Seriale · Exec · SSH Tunnel
| Protocollo | Come si apre | Punti di forza |
|---|---|---|
| SSH | Tab VTE interno o terminale esterno | Jump Host, X11, Agent Forward, pre-cmd VPN, macro |
| SFTP | Browser dual-pane integrato | Drag & drop, coda trasferimenti con progresso/velocità/ETA, rinomina, sincronizzazione directory locale↔remota |
| FTP / FTPS | Browser integrato o file manager | TLS esplicito, modalità PASV |
| RDP | Pannello interno o finestra esterna | xfreerdp3/xfreerdp/rdesktop, multi-monitor |
| VNC | gtk-vnc nativo o client esterno | Scala, grab input, screenshot |
| Telnet | Tab VTE interno | — |
| Mosh | Tab VTE interno | Resistente a disconnessioni |
| Seriale | Tab VTE interno | Baud, parità, stop bit configurabili |
| Exec | Tab VTE interno | Qualsiasi comando shell in una scheda |
| SSH Tunnel | Background gestito graficamente | SOCKS -D, locale -L, remoto -R |
- Password mai sulla command line: PCM digita la password direttamente nel terminale quando il server la richiede, esattamente come farebbe un utente. Nessun
sshpass, nessun argomento visibile inps aux. - Fallback SSH_ASKPASS per OpenSSH ≥ 8.4: lo script helper è creato in
~/.cache/pcm/(permessi0700, non in/tmp) ed eliminato dopo 5 secondi. La password è passata solo via variabile d'ambiente, mai scritta nel file. - Protezione command injection: tutti i parametri dei profili (host, porta, utente, device, ecc.) sono sanificati con
shlex.quote()prima di essere usati nei comandi shell. Il pre-comando è eseguito conshell=False. - File credenziali protetti (
connections.json,pcm_settings.json,audit_log.json): scritti con permessi0600— leggibili solo dal proprietario. - Verifica host key SSH attiva:
StrictHostKeyChecking=yessu tutte le connessioni. Il browser SFTP usaRejectPolicydi paramiko con caricamento automatico diknown_hosts. - Cifratura AES-256 (Fernet + PBKDF2-SHA256, 480k iterazioni): utenti e password in
connections.jsoncifrati con password master. La chiave non tocca mai il disco. Il token di verifica usa un canary casuale per prevenire attacchi a dizionario offline. - Audit log con hash chaining: ogni voce include l'SHA-256 della voce precedente — le manomissioni sono rilevabili.
- KeePassXC integrato via Browser Protocol v2 (NaCl box): cerca e compila credenziali direttamente dal database KeePassXC aperto — nessun browser necessario.
- Gestione chiavi SSH: genera, copia sul server, visualizza la chiave pubblica.
- Agent Forwarding (
-A): propaga le chiavi ssh-agent per hop multipli senza copiare le chiavi private.
Disponibile per sessioni SSH, VNC (Linux) e RDP (Windows), configurabile per-sessione nel tab Pannelli del dialogo sessione. Si apre a fianco del terminale senza aprire nuove finestre. Il tab mostra solo le sezioni rilevanti per il protocollo selezionato.
| Sezione | Cosa mostra |
|---|---|
| System Overview | CPU % (barra) e utilizzo RAM (usato / totale), aggiornati ogni 2 secondi |
| Running Processes | Tabella ordinabile per colonna (PID, CPU%, Mem%, Command) — pulsante kill per processo |
| Disk Usage | Una card per partizione: mount point, device, usato/totale, spazio libero, barra progresso |
| Network Usage | Velocità download/upload in byte/s con sparkline doppia (60 campioni), selettore interfaccia |
| Logs | Streaming journalctl o tail -f con filtro regex, colorazione per livello, auto-scroll (nascosto su Windows) |
Matrice supporto protocolli:
- SSH / Mosh: pannello completo (browser SFTP + monitor)
- VNC (Linux): browser SFTP + monitor SSH con porta SSH configurabile
- RDP (Windows): browser SFTP + monitor PowerShell via OpenSSH; tab Log nascosto
- FTP, Telnet, Seriale, Exec: etichetta informativa — nessun pannello disponibile
Il pannello riusa la connessione SSH del monitor — nessuna connessione TCP aggiuntiva.
Ogni sezione è abilitabile o disabilitabile individualmente per sessione.
- VTE nativo — zero dipendenze X11, funziona su Wayland puro
- Split verticale/orizzontale — più sessioni affiancate nella stessa finestra
- Temi: Dracula, Nord, Gruvbox, Solarized Dark/Light, One Dark, Monokai, Cobalt, Tomorrow Night e altri
- Macro per sessione — comandi inviati con un clic dalla sidebar
- Libreria snippet — comandi riutilizzabili globali accessibili dal menu contestuale del terminale ("Inserisci snippet…")
- Broadcast terminali — invia lo stesso testo a tutti i terminali selezionati contemporaneamente (ideale per cluster)
- Multi-exec — esegui un comando su più sessioni in sequenza
- Ctrl+Rotella per cambiare la dimensione del font nel terminale VTE
- Log output su file per ogni sessione (con
script(1)) - Scrollback configurabile o infinito per sessione
- Pre-comando locale: attiva VPN o monta volume prima di aprire la connessione
- Organizzate per gruppo con barra di ricerca live
- Indicatore sessioni attive — pallino verde ● accanto al nome delle sessioni con connessione aperta
- Sezione Recenti in cima alla sidebar: ultime 20 sessioni con timestamp
- Quick Connect:
utente@host:portadalla toolbar — si connette senza salvare un profilo - Doppio clic per connettere, tasto destro per menu contestuale ricco sia sull'elenco sessioni che sui tab aperti — include "Visualizza log…" e "Monitor sistema…" per sessioni SSH
- Ping TCP dalla sidebar — verifica raggiungibilità sulla porta configurata (ms)
- Ripristino sessioni — salva opzionalmente le sessioni aperte alla chiusura e le riapre automaticamente al prossimo avvio (Impostazioni → Generale)
- Duplica, modifica, elimina, esporta script
.shper riaprire da terminale - Import da: Remmina (
.remmina), Remote Desktop Manager (.rdm/.json), PuTTY (~/.putty/sessions/),~/.ssh/config, MobaXterm (.mobaXterm)
- Tunnel SSH grafici — avvia, ferma, monitora tunnel in background; indicatore nella toolbar con popup rapido per fermare i tunnel senza aprire il gestore
- Libreria snippet — libreria globale di comandi salvata in
pcm_settings.json, accessibile dal menu Strumenti e dal menu contestuale del terminale ("Inserisci snippet…"); supporta categorie e gestione CRUD completa - Editor file SFTP — doppio clic o clic destro "Modifica file…" nel browser SFTP apre il file nell'editor GUI esterno configurato (scarica in file temporaneo, rileva le modifiche all'uscita, carica automaticamente); fallback su editor interno GtkSource/GtkTextView
- Gestore cron — clic destro su un tab SSH → "Gestore Cron…"; si connette via paramiko, legge/scrive il crontab dell'utente remoto, lo presenta come TreeView modificabile con dialoghi add/edit/delete e supporto per
@reboot/@daily/@weekly - Sincronizzazione directory SFTP — confronta cartella locale con cartella remota (per dimensione + data modifica), rivedi la tabella diff con controllo della direzione per file, esegui usando la coda trasferimenti esistente con progresso/velocità/ETA
- Barra progresso SFTP — il pannello SFTP laterale mostra una barra di progresso in tempo reale durante upload e download (tramite callback paramiko)
- Server FTP locale (pyftpdlib) — espone una cartella locale via FTP/FTPS in un clic
- Variabili globali
{NOME}— riutilizzabili nei comandi di tutte le sessioni - Wake-on-LAN — invia magic packet prima di connettersi
- Audit log — storico connessioni con timestamp, durata, protocollo, stato; esportabile CSV
- Verifica dipendenze — controlla automaticamente quali tool sono installati all'avvio
5 lingue complete: 🇮🇹 Italiano · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español
Cambio lingua immediato dalle impostazioni senza riavvio.
![]() Finestra principale: sidebar con gruppi e sezione Recenti, terminale SSH integrato aperto, status bar connessione |
![]() |
|
| Tab Note — campo testo libero per annotazioni associate alla sessione |
![]() |
![]() |
| Tab Connessione VNC — host, porta 5900, utente, integrazione KeePassXC | Tab Avanzate VNC — apertura con gtk-vnc integrato o client esterno, profondità colore, qualità |
![]() |
![]() |
| Connessione Mosh — host, porta SSH, utente, password, chiave privata | Connessione Seriale — device (/dev/ttyUSB0), baud rate, data bit, parity, stop bit |
![]() |
|
| Protocollo Exec — esegui qualsiasi comando shell in un tab VTE dedicato |
![]() Browser SFTP integrato — pannello locale e remoto affiancati, upload/download, coda trasferimenti, drag & drop |
![]() |
![]() |
| Quick Connect — connessione rapida senza salvare il profilo, scelta protocollo, host, porta, utente, password | Sblocco credenziali — master password per decifrare le credenziali salvate (AES-256) |
![]() |
|
| Import sessioni — da Remmina (.remmina), Remote Desktop Manager (.rdm/.json), PuTTY, ~/.ssh/config, MobaXterm (.mobaXterm) |
PCM accetta un URI alla prima apertura o con PCM già in esecuzione: in quel caso la connessione viene aggiunta come nuova tab nella finestra esistente, senza richiedere di nuovo la password master.
# Apre la sessione salvata "jiraapp" (cerca per nome, poi per hostname)
python3 PCM.py ssh://jiraapp
# Connessione ad-hoc (non deve essere salvata in PCM)
python3 PCM.py ssh://admin@192.168.1.10:2222Protocolli supportati: ssh:// rdp:// vnc:// sftp:// ftp:// ftps:// telnet:// mosh://
Per la documentazione completa con tutti gli esempi consulta il manuale integrato (menu Aiuto).
chmod +x PCM-*-x86_64.AppImage
./PCM-*-x86_64.AppImageNessuna installazione richiesta. Sessioni e impostazioni vengono salvate in ~/.config/pcm/ (persistono tra un aggiornamento e l'altro).
Richiede sul sistema: libgtk-3-0 e libvte-2.91-0 (presenti di default su qualsiasi desktop GTK3).
git clone https://github.com/buzzqw/Python_Connection_Manager.git
cd Python_Connection_Manager
bash setup.shLo script rileva la distribuzione (Debian/Ubuntu, Arch, Fedora, openSUSE, FreeBSD) e installa tutte le dipendenze di sistema e Python. Crea anche un launcher .desktop nel menu applicazioni.
# Solo verifica dipendenze, senza installare:
bash setup.sh --checkcd Python_Connection_Manager/gtk3
python3 PCM.pyAl primo avvio PCM crea connections.json con sessioni di esempio e propone di abilitare la cifratura AES-256 delle credenziali.
Debian / Ubuntu / Linux Mint
sudo apt install \
python3 python3-gi python3-gi-cairo \
gir1.2-gtk-3.0 gir1.2-vte-2.91 gir1.2-gtk-vnc-2.0 \
openssh-client mosh freerdp3-x11 tigervnc-viewer \
xdotool xdg-utils wakeonlan
pip install --user cryptography paramiko pyftpdlibArch Linux
sudo pacman -Sy --needed \
python python-gobject gtk3 vte3 gtk-vnc \
openssh mosh freerdp tigervnc xdotool xdg-utils wol \
python-cryptography python-paramiko python-pyftpdlibFedora
sudo dnf install \
python3-gobject gtk3 vte291 gtk-vnc2 \
openssh-clients mosh freerdp tigervnc xdotool xdg-utils
pip install --user cryptography paramiko pyftpdlibopenSUSE
sudo zypper install \
python3-gobject typelib-1_0-Gtk-3_0 \
typelib-1_0-Vte-2.91 typelib-1_0-GtkVnc-2_0 \
openssh mosh freerdp tigervnc xdotool xdg-utils
pip install --user cryptography paramiko pyftpdlibFreeBSD
sudo pkg install \
python3 py311-gobject gtk3 vte3 gtk-vnc \
mosh freerdp3 tigervnc-viewer xdotool wakeonlan \
py311-cryptography py311-paramiko py311-pyftpdlibRiceve solo bugfix critici. Istruzioni di installazione in
pyqt6/README.md.
| Pacchetto | Funzionalità abilitata |
|---|---|
gir1.2-gtk-vnc-2.0 / gtk-vnc |
VNC integrato nativo (raccomandato) |
tigervnc-viewer / xtightvncviewer |
VNC via client esterno (fallback) |
freerdp3-x11 / xfreerdp |
RDP |
mosh |
Connessioni Mosh |
picocom / minicom |
Porte seriali |
xdotool |
RDP in pannello interno (richiede XWayland) |
wakeonlan / wol |
Wake-on-LAN |
keepassxc |
Integrazione KeePassXC |
pynacl |
Cifratura protocollo KeePassXC Browser v2 |
GTK3 + VTE funzionano nativamente su Wayland senza XWayland.
L'unica eccezione è la modalità RDP pannello interno (embedding xfreerdp tramite xdotool) che richiede XWayland. Per uso Wayland puro, impostare RDP su "Finestra esterna".
Il viewer VNC gtk-vnc funziona nativamente su Wayland.
| File | Contenuto |
|---|---|
gtk3/connections.json |
Profili sessione — JSON leggibile, modificabile a mano. Permessi 0600. |
gtk3/pcm_settings.json |
Impostazioni globali, scorciatoie, sessioni recenti. Permessi 0600. |
gtk3/audit_log.json |
Log audit connessioni con hash chaining SHA-256. Permessi 0600. |
~/.local/share/pcm/logs/ |
Log output terminali (default), percorso configurabile |
~/.cache/pcm/ |
File temporanei SSH_ASKPASS (dir 0700, file eliminati dopo 5s) |
AppImage: quando si usa l'AppImage i tre file JSON sopra vengono scritti in
~/.config/pcm/(il filesystem dell'AppImage è in sola lettura). La configurazione persiste tra un aggiornamento e l'altro.
Se PCM ti è utile e vuoi ringraziare lo sviluppatore, puoi offrire un caffè tramite PayPal. Ogni contributo è molto apprezzato e aiuta a mantenere il progetto attivo!
Grazie mille!
Andres Zanzani — licenza EUPL-1.2
























