
sshdeck è un client SSH nativo per Linux che punta a semplificare la gestione dei server remoti attraverso un’interfaccia grafica moderna e leggera. Sviluppato in Rust utilizzando GTK 4 e libadwaita, il progetto si ispira a MobaXterm e riunisce in un’unica finestra terminale SSH, gestione dei file tramite SFTP e strumenti per amministrare database.
L’obiettivo è offrire agli amministratori di sistema, agli sviluppatori e agli utenti Linux uno strumento completo per lavorare con infrastrutture remote senza dover utilizzare continuamente applicazioni differenti.
La caratteristica principale di sshdeck è l’organizzazione dell’interfaccia: ogni connessione dispone di una scheda nella quale il terminale remoto e l’albero dei file SFTP sono visualizzati affiancati. In questo modo è possibile eseguire comandi, navigare nelle directory del server, trasferire documenti e modificare file senza cambiare applicazione.
Un altro aspetto importante riguarda l’utilizzo di OpenSSH. sshdeck non implementa autonomamente il protocollo SSH, ma utilizza il programma /usr/bin/ssh già presente nel sistema. Questo significa che continua a sfruttare la configurazione abituale dell’utente, compresi ~/.ssh/config, le chiavi private, ssh-agent, ProxyJump e le richieste di password.
L’applicazione non legge, memorizza o registra le password SSH e le passphrase delle chiavi. L’autenticazione avviene direttamente attraverso il terminale, mantenendo il comportamento del normale client OpenSSH.
Dal punto di vista tecnico, la scelta di Rust permette di mantenere un’applicazione nativa senza dipendenze da Electron o browser incorporati. Le operazioni di rete vengono eseguite attraverso un runtime Tokio separato, evitando che connessioni lente o trasferimenti impegnativi blocchino l’interfaccia grafica.
Terminale SSH, gestione SFTP e monitoraggio dei server remoti
La gestione delle connessioni rappresenta uno degli elementi centrali di sshdeck. Gli utenti possono collegarsi rapidamente digitando un indirizzo nel formato user@host, utilizzando un alias presente nella configurazione SSH oppure specificando una porta personalizzata.
Le connessioni possono essere salvate, organizzate in cartelle anche annidate e personalizzate con diversi colori. È inoltre possibile importare ed esportare le configurazioni attraverso file JSON, senza includere le password.
L’applicazione legge automaticamente gli host configurati in ~/.ssh/config, seguendo anche le direttive Include e ignorando le voci wildcard. Una funzione di ricerca permette di individuare rapidamente i server salvati attraverso nome, indirizzo o cartella.
Per ogni server è disponibile un indicatore di stato che permette di verificare la raggiungibilità attraverso il banner SSH, senza effettuare l’autenticazione. Passando il mouse sull’indicatore viene mostrata anche la latenza.
Una volta stabilita la connessione, sshdeck mette a disposizione diverse funzionalità:
- Terminale integrato: utilizza OpenSSH di sistema e supporta le normali configurazioni dell’utente.
- Pannello SFTP: visualizza directory e file remoti accanto al terminale.
- Trasferimento file: permette di caricare e scaricare file e intere directory.
- Drag and drop: supporta il trascinamento dei file tra il file manager locale e il pannello remoto.
- Modifica remota: apre i file con l’editor locale e carica automaticamente le modifiche quando vengono salvate.
- Terminali suddivisi: permette di aprire più terminali nella stessa scheda, affiancati oppure uno sotto l’altro.
- Comandi personalizzati: consente di eseguire automaticamente un comando dopo il login, ad esempio per entrare direttamente nella directory di un progetto.
Particolarmente interessante è l’integrazione tra terminale e file manager. Quando la directory corrente della shell cambia attraverso cd, anche il pannello SFTP può aggiornare automaticamente il proprio percorso. La funzionalità è disponibile direttamente con fish, mentre per Bash e Zsh richiede una piccola configurazione aggiuntiva nella rispettiva shell.
Il trasferimento dei file include controlli per evitare sovrascritture accidentali, indicatori di avanzamento e possibilità di annullare le operazioni. I trasferimenti interrotti non lasciano file parzialmente scritti sul server.
sshdeck integra inoltre un sistema di port forwarding che supporta connessioni locali, remote e tunnel SOCKS. Le regole possono essere associate alle connessioni salvate e ripristinate automaticamente dopo una riconnessione.
Un’altra funzionalità utile per gli amministratori è il monitoraggio delle risorse del server. La barra di stato mostra informazioni relative a CPU, memoria, spazio su disco, velocità della rete, uptime e load average. I valori superiori al 75% e al 90% vengono evidenziati per rendere immediatamente visibili eventuali situazioni critiche.
Client database integrato, temi personalizzati e caratteristiche tecniche
Oltre alle funzionalità SSH e SFTP, sshdeck include un vero e proprio client database che ricorda, per impostazione generale, strumenti come DBeaver.
La versione descritta supporta direttamente PostgreSQL, MySQL, MariaDB e SQLite. Per altri sistemi di database è possibile installare estensioni dedicate.
Le connessioni ai database possono essere effettuate anche attraverso tunnel SSH, sfruttando una scheda già autenticata oppure una chiave di accesso.
Le password dei database vengono conservate nel portachiavi di sistema, utilizzando soluzioni come KWallet e GNOME Keyring, evitando di salvarle in file di configurazione.
L’interfaccia permette di navigare tra database, schemi, tabelle, viste e colonne. Le chiavi primarie vengono evidenziate attraverso un’apposita icona, mentre vengono mostrate informazioni sulle dimensioni delle tabelle, compresi gli indici, e stime del numero di righe.
Per lavorare con i dati è disponibile un editor SQL con diverse scorciatoie:
Ctrl+Enteresegue l’istruzione sotto il cursore oppure quella selezionata.Ctrl+Shift+Enteresegue l’intero contenuto dell’editor.- Il doppio clic su una tabella permette di visualizzare le prime 200 righe.
Sono disponibili anche strumenti per importare ed esportare dati. L’esportazione supporta CSV, CSV compatibile con Excel, JSON e istruzioni SQL INSERT. L’importazione accetta file CSV, TSV e array JSON, con rilevamento automatico del delimitatore nei formati tabellari.
Le operazioni di importazione vengono eseguite all’interno di una singola transazione, così da evitare che eventuali errori lascino la tabella in uno stato parzialmente modificato.
Per quanto riguarda l’aspetto grafico, sshdeck dispone di una propria selezione di temi chiari e scuri. Oltre alle palette predefinite sono disponibili Dracula, Nord, Gruvbox, Tokyo Night, One Dark, Catppuccin e Solarized.
Un dettaglio interessante è che i temi modificano l’intera applicazione, compresi barra del titolo, pannello laterale, finestre di dialogo, elenchi e terminale, anziché limitarsi alla sola console.
L’interfaccia è attualmente disponibile in inglese, russo e spagnolo, mentre le finestre di dialogo GTK seguono la stessa lingua selezionata.
L’architettura basata su Rust e Tokio, insieme all’utilizzo delle librerie GTK 4 e libadwaita, rende sshdeck particolarmente interessante per chi cerca un client SSH nativo, senza componenti Electron e con un’interfaccia integrata nell’ambiente desktop Linux.
Come installare sshdeck
sshdeck è disponibile per Linux con pacchetti deb, rpm e binari precompilati (oltre al codice sorgente). Abbiamo testato il software su Ubuntu 26.04 LTS.
La presenza di terminale, SFTP, port forwarding, monitoraggio delle risorse e gestione database rende il progetto una soluzione da tenere d’occhio soprattutto per sistemisti, sviluppatori e professionisti che amministrano quotidianamente server Linux da workstation desktop.