Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sshelf — Interfaccia terminale veloce per i tuoi host SSH: ricerca fuzzy e connessione in due tasti, trasferimento file SFTP a doppio pannello e inoltro porte in background. Mantiene un proprio database degli host e genera il comando ssh — non modifica mai ~/.ssh/config. | Kitploit
Strumenti/GitHubGitHub/max-rh/sshelf
Utilità GenericheSicurezza di ReteUtilità e FrameworkAutenticazioneStrumento di Accesso Remoto
GitHubmax-rh/sshelf

sshelf

Interfaccia terminale veloce per i tuoi host SSH: ricerca fuzzy e connessione in due tasti, trasferimento file SFTP a doppio pannello e inoltro porte in background. Mantiene un proprio database degli host e genera il comando ssh — non modifica mai ~/.ssh/config.

Vedi Repository
66893 giorni faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

sshelf

Cerca i tuoi host SSH con fuzzy-search e connettiti in due tasti.

sshelf mantiene una propria lista di host, costruisce il comando ssh per te e poi si fa da parte. Lascia il terminale al vero OpenSSH e non tocca mai ~/.ssh/config.

crates.io CI docs built with Ratatui MSRV license

sshelf: digita qualche lettera e ha il comando ssh pronto

Installazione

macOS e Linux, x86_64 e arm64. I pacchetti precompilati non richiedono il toolchain Rust. A runtime sshelf richiede OpenSSH 8.4+, che è da dove arriva la fornitura automatica delle password.

Homebrew (macOS o Linux):

root@kitploit:~
brew install max-rh/tap/sshelf

Installer shell (binario precompilato, rileva la tua piattaforma):

root@kitploit:~
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-rh/sshelf/releases/latest/download/sshelf-installer.sh | sh
Altre opzioni (Debian/Ubuntu · Fedora/RHEL · Gentoo · cargo)

Debian/Ubuntu: prendi il .deb dall'ultima release, poi sudo apt install ./sshelf_*_amd64.deb (o *_arm64.deb).

Fedora / RHEL / Rocky / openSUSE: prendi il .rpm (build statica, funziona su qualsiasi distro RPM) dall'ultima release, poi sudo dnf install ./sshelf-*.x86_64.rpm (o .aarch64.rpm).

Gentoo: overlay mantenuto dalla community (non ufficiale, grazie a @masterwolf-git). Esegui eselect repository enable masterwolf && emerge --sync && emerge --ask app-admin/sshelf.

Cargo (da crates.io; richiede Rust 1.88+): cargo install sshelf.

Il tab-completion per la shell è incluso in ogni pacchetto. Apri una nuova shell dopo l'installazione. Su Linux, i segreti usano un backend Secret Service in puro Rust (nessuna dipendenza di build libdbus/OpenSSL).

Dettagli completi e configurazione del completamento: Guida all'installazione.

Perché l'ho costruito

Gestisco un paio di dozzine di macchine (un homelab, alcuni VPS, qualche macchina dietro un bastion), e continuavo a digitare ssh -J bastion -i ~/.ssh/some-key -p 2222 user@host a memoria o a cercare nella cronologia della shell. Ogni gestore SSH che ho provato voleva o possedere ~/.ssh/config o darmi un account e sincronizzare i miei host tramite il server di qualcuno. Non volevo nessuna delle due cose. Volevo un launcher che mantenesse una propria lista, costruisse il comando e si facesse da parte. E un posto dove tenere le password per la manciata di host che non possono usare le chiavi, senza mai metterle in un file. Quindi l'ho costruito.

Cosa ottieni

Launcher fuzzy

Digita per filtrare. Invio connette. I tuoi host più usati salgono in cima da soli (frecency: conteggio degli utilizzi, attenuato dalla recency), e tag:prod / site:homelab restringono ulteriormente la lista. Ctrl-y copia il comando che ha costruito invece di eseguirlo. Dalla shell, sshelf prod-web connette per nome e sshelf - riconnette all'ultimo host, entrambi senza aprire la TUI.

Il launcher sshelf che filtra tre host mentre digiti

Esegue exec() nel tuo ssh

sshelf costruisce l'argv dal record dell'host, smonta la propria UI e poi sostituisce se stesso con OpenSSH. Non c'è alcun wrapper tra te e la sessione: una vera TTY, il tuo ssh, i tuoi flag senza config. Quando la sessione termina torni alla tua shell, non in un menu. Il comando che esegue è esattamente quello che Ctrl-y ti mostra. Come viene costruito il comando.

Trasferimento file a doppio pannello

Ctrl-t apre i tuoi file a sinistra e quelli dell'host a destra, su una singola connessione autenticata. Spazio marca, Ctrl-a marca tutto ciò che il filtro mostra, Ctrl-s invia l'intero set in entrambe le direzioni, F7 crea una directory. Un nome che la destinazione ha già viene saltato, mai sovrascritto.

La schermata di trasferimento a doppio pannello con due voci marcate

Port forwarding in background

Ctrl-f apre un tunnel Local, Remote o SOCKS che continua a girare dopo che esci da sshelf, e dopo che chiudi il terminale. F4 elenca tutti i tunnel su tutti gli host e ferma quello che scegli. Sono tracciati tramite pid e riconciliati con i processi realmente in esecuzione, quindi nulla rimane in una lista dopo che muore. Nessun daemon, nessun supervisor.

Il gestore dei forward che elenca due tunnel attivi

Modalità tmux

Imposta tmux = "window" o "pane" e Invio apre l'host in una nuova finestra tmux (chiamata come l'host) o in un nuovo pannello invece di sostituire sshelf. Termina la sessione e il selettore è ancora lì, ancora in esecuzione.

Invio apre l'host in una nuova finestra tmux; sshelf continua a girare

Siti e tag

F3 gestisce i siti: un sito raggruppa host e può portare un bastion, utente, porta e chiave condivisi che i suoi membri ereditano al momento della connessione, riempiendo solo i campi che un host lascia non impostati. I tag sono etichette libere su cui filtrare. Entrambi compaiono nella lista, e un bastion ereditato compare nel comando che sshelf costruisce.

Il gestore dei siti con tre siti e i loro default condivisi

Password senza sshpass

Per gli host che non possono usare le chiavi, sshelf memorizza la password nel portachiavi del tuo OS (o in un vault crittografato con age su una macchina headless) e la fornisce tramite SSH_ASKPASS quando ssh la chiede. Risponde solo a prompt con la forma di una vera password o passphrase, quindi un server non può phishingare il segreto con testo simile. La password non è mai in un file, mai in ps, mai su una riga di comando. Gli host che vogliono anche un codice di verifica ricevono un prompt prima dell'avvio della connessione. Password, chiavi e 2FA · Sicurezza.

Il modulo di aggiunta host nella sezione auth, che sceglie una chiave

Esportazione in ssh_config

sshelf export scrive un frammento ssh_config proprio e ti dà una singola riga Include da incollare tu stesso in ~/.ssh/config. Dopo di che, il semplice ssh, scp, rsync, git e qualsiasi cosa che legge la config SSH (VS Code Remote-SSH, JetBrains Gateway) risolve i tuoi host sshelf per nome, bastion incluso. Il file si aggiorna ogni volta che i tuoi host cambiano. sshelf continua a non scrivere nulla sotto ~/.ssh.

sshelf export che scrive un frammento ssh_config, e il frammento stesso

Importa ciò che hai già

sshelf import legge ~/.ssh/config, strettamente in sola lettura, e copia gli host che può modellare. sshelf import --tailscale esegue la tua CLI tailscale e trasforma la tua tailnet in host ricercabili, con nomi MagicDNS, la tailnet come sito e i tag ACL come tag. Entrambi sono solo-aggiunta, quindi rieseguirli è sempre sicuro, e nessuno dei due avviene a meno che tu non lo chieda.

sshelf doctor

Un comando per quando qualcosa non funziona. Controlla la tua versione di OpenSSH, se il backend dei segreti si apre davvero, se hosts.toml viene parsato, gli host che puntano a un sito che non esiste, un socket dell'agente mancante e un export che si è discostato. Nomina la soluzione per ciascuno. In sola lettura, esce con 1 se qualcosa fallisce, e non contatta mai un host.

sshelf doctor che elenca i suoi controlli, con un avviso

Come si confronta

Compilato a settembre 2026 dal README di ciascun progetto (e, per Termius, dal suo sito). Una cella che riporta "non dichiarato" significa che i documenti del progetto non lo dicono.

sshelfpurpleomnysshVoltiusTermius
Esegue interminale (TUI)terminale (TUI)terminale (TUI) + app desktopapp desktop (Tauri)app desktop + mobile
Modifica ~/.ssh/configmaisì, in placeno, lo legge all'avvion/d (store proprio)n/d (store proprio)
Account richiestonononoper la sincronizzazione in tempo realesì
Conserva token per altri servizinosì, uno per cloud providernosì, per la sincronizzazionenon dichiarato
Chiamate di rete proprienessunasincronizzazione cloud providerpolling metriche hostsincronizzazione, aggiornamenti, metriche hostsincronizzazione
Custodia dei segretiportachiavi del tuo OS / vault ageportachiavi + password managernon dichiaratovault E2EEvault crittografato
Connessioneexec() nel tuo sshesegue il tuo comando sshterminale integratoterminale integratoterminale integrato
Port forwardingsì, sopravvive all'uscitasì, monitoraggio livenon dichiaratosìsì
Trasferimento fileSFTP a doppio pannellopannello divisoSFTP a due pannellidoppio pannello, drag & dropSFTP
Contenitori / dashboard metrichenosìsìsìnon dichiarato
Condivisione di teamnononopiani a pagamentopiani a pagamento
PiattaformemacOS, LinuxmacOS, LinuxmacOS, Linux, Windows, TermuxWindows, macOS, LinuxmacOS, Windows, Linux, iOS, Android
LicenzaMIT / Apache-2.0MITApache-2.0AGPL-3.0proprietaria

sshelf non ha dashboard, nessuna gestione contenitori, nessuna condivisione di team e nessuna build Windows. Le prime tre sono scelte, e PRIVACY.md spiega perché: ognuna significherebbe che sshelf detiene qualcosa di tuo, o parla con qualcosa per conto proprio.

Cosa non farà mai

  • Nessuna telemetria. Nessuna analytics, nessun report di crash, nessun controllo aggiornamenti.
  • Nessun account, nessun cloud, nessun server di sincronizzazione. Non c'è nulla a cui registrarsi.
  • Nessun token conservato. sshelf non memorizza mai una credenziale cloud o API.
  • Nessuna chiamata di rete propria. L'unico traffico è la sessione SSH che hai richiesto.
  • Non modifica mai ~/.ssh/config e non scrive mai nulla sotto ~/.ssh.
  • Nessun segreto in hosts.toml. Quel file è sicuro da committare e condividere.
  • Nessun Electron. Un singolo binario, circa quattro megabyte.

PRIVACY.md dice cosa legge, scrive, esegue e invia. SECURITY.md è il modello di minaccia per i segreti memorizzati.

Primi cinque minuti

root@kitploit:~
sshelf                        # avvia la TUI (Ctrl-a aggiunge il tuo primo host)
sshelf import --dry-run       # anteprima di un import in sola lettura da ~/.ssh/config
sshelf import                 # ...eseguilo
sshelf import --tailscale     # ...o importa tutta la tua tailnet Tailscale
sshelf prod-web               # connettiti direttamente a un host salvato (salta la TUI)
sshelf -                      # riconnettiti all'host usato più di recente
sshelf list tag:prod --json   # elenco scriptabile (campi + il comando ssh)
sshelf print-command db       # stampa il comando ssh invece di eseguirlo
sshelf export                 # file Include così ssh/scp/VS Code vedono i tuoi host
sshelf doctor                 # qualcosa non funziona? controlla la configurazione e ti viene detto il fix

Nella TUI: digita per filtrare (più tag:NOME / site:NOME) e Invio per connetterti. F1 mostra ogni tasto.

Documentazione

La guida utente copre tutto: Quickstart · Riferimento CLI · Configurazione · FAQ · sshelf doctor. Ci sono pagine per funzione per il trasferimento file, il port forwarding, siti e tag, password e 2FA e l'esportazione della config SSH. Le decisioni di architettura e design vivono in docs/, e c'è un llms.txt per le macchine.

Domande e idee

Chiedi, suggerisci una funzione o mostra cosa hai costruito con esso in GitHub Discussions. I contributi sono benvenuti. Inizia con CONTRIBUTING.md.

Supporto

Se sshelf ti è utile, una mancia in Bitcoin è apprezzata (del tutto facoltativa):

Donate BTC

Bitcoin: bc1qcdeyhpwq76u97dhymx876n49uq85z4y3ccrpje

Licenza

Dual-licensed sotto MIT o Apache-2.0, a tua scelta (la norma dell'ecosistema Rust).

Scarica lo strumento