
Una suite di accesso remoto nativa del terminale per SSH, inventari cloud, connettori basati su provider, comandi paralleli, workspace mux, trasferimento file e monitoraggio.
ls + ssh = lssh
lssh è una suite di accesso remoto nativa per il terminale, progettata per flussi di lavoro SSH, inventari cloud e connettori basati su provider.
Permette di selezionare host dal file di configurazione OpenSSH, dalla configurazione di lssh o da inventari di provider, e di operare su di essi tramite SSH nativo o backend connettori come AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet e provider personalizzati.
Usalo per shell interattive, comandi paralleli, ambienti di lavoro mux, trasferimento file, sincronizzazione, mount e monitoraggio. Gli host supportati dai connettori espongono solo le operazioni supportate dal rispettivo connettore.
brew install blacknon/lssh/lssh
go install github.com/blacknon/lssh/cmd/lssh@latest
Le funzionalità di inventario e connettore basate su provider utilizzano eseguibili provider separati.
Se installi solo cmd/lssh, questi binari provider non vengono installati automaticamente.
Per lo sviluppo locale, installa i provider inclusi con:
mise run provider_install
Per le build di rilascio, installa l'archivio lssh-complete_* tutto-in-uno o aggiungi l'archivio lssh-providers_* corrispondente dalle GitHub Releases.
Per maggiori dettagli sull'installazione, incluse altre opzioni e note specifiche per piattaforma, consulta docs/install.md.
Usi già ~/.ssh/config?
Basta eseguire:
lssh
Vuoi generare una configurazione lssh dalla tua configurazione SSH esistente?
lssh --generate-lssh-conf > ~/.lssh.toml
lssh è pensato per un flusso di lavoro semplice:
Puoi comunque collegarti direttamente a un singolo host quando sai già dove connetterti:
lssh -H my-server
Per maggiori dettagli sui formati di configurazione e le impostazioni, consulta cmd/lssh/README.md.
Vuoi provare lssh rapidamente con un playground locale pronto all'uso?
Inizia con demo/README.md.
Per il flusso con connettore telnet e provider multi-hop, usa demo-telnet-provider/README.md.
lssh supporta sia la tua configurazione OpenSSH esistente che il proprio formato di configurazione.
Se vuoi iniziare velocemente, puoi continuare a usare ~/.ssh/config così com'è. Se desideri metadati host più ricchi e impostazioni orientate al flusso di lavoro, puoi passare invece a una configurazione lssh.
Puoi anche generare una configurazione lssh dalla tua configurazione SSH esistente:
lssh --generate-lssh-conf > ~/.lssh.toml
Anche dopo essere passati alla configurazione lssh, puoi continuare a puntarla verso la tua configurazione OpenSSH esistente e caricare gli host da lì:
[sshconfig.default]
path = "~/.ssh/config"
Per maggiori dettagli sui formati di configurazione e le impostazioni, consulta docs/configuration.md.
lssh può funzionare con più che semplici voci di configurazione SSH statiche.
I provider permettono di estrarre host da fonti di inventario esterne, risolvere segreti appena prima della connessione e utilizzare backend di connessione non-SSH come connettori gestiti dal cloud.
In v0.10.0, i flussi di lavoro di inventario e segreti basati su provider sono da considerarsi in beta.
L'accesso basato su connettori oltre lo SSH nativo è ancora sperimentale, specialmente per runtime gestiti dal cloud e backend non-SSH.
Se vuoi provare i flussi orientati ai provider localmente, inizia da queste demo:
Per una panoramica dell'architettura e del protocollo dei provider, inizia con provider/README.md. I dettagli delle categorie sono documentati anche in inventory, connector, secret e mixed.
Queste implementazioni di provider sono attualmente incluse in questo repository.
|
provider-inventory-proxmox Crea voci host dall'inventario Proxmox. |
|
provider-connector-openssh Utilizza la gestione delle connessioni compatibile con OpenSSH come connettore basato su provider. |
| provider-mixed-aws-ec2 Combina l'inventario EC2 con i connettori AWS SSM e EC2 Instance Connect Endpoint. I flussi adiacenti allo SSH nativo sono utilizzabili, mentre il comportamento specifico del connettore rimane sperimentale. |
Il progetto lssh include diversi strumenti per flussi di lavoro incentrati su SSH.
lssh, inoltro e utilizzo di rc localeSe stai valutando lssh, vale la pena dare un'occhiata anche a questi progetti.
Si sovrappongono a parti della suite, ma di solito ciascuno copre una fetta più ristretta del flusso di lavoro complessivo.
lssh è diversalssh combina selezione host, SSH interattivo, esecuzione parallela di comandi, inoltro e destinazioni basate su connettore/provider.lsshell si concentra su flussi di lavoro di shell interattivi paralleli invece di lanciare semplicemente molti terminali.lscp, lsftp e lssync coprono il trasferimento file e la sincronizzazione come comandi di prima classe nella stessa suite.lsmux fornisce un'area di lavoro SSH basata su pannelli anziché solo modelli di sessione.lspipe mantiene gli host selezionati riutilizzabili da pipeline locali e automazione.
![]() Selettore interattivo di host |
![]() Esecuzione parallela di comandi |
![]() Flusso di lavoro mux |
![]() Flusso di lavoro mux con comando |
|
provider-connector-telnet Raggiungi destinazioni telnet tramite l'interfaccia del connettore. |
|
provider-connector-winrm Esegui flussi di lavoro di esecuzione comandi su destinazioni WinRM. Il supporto per shell interattive non è disponibile in v0.10.0. |
|
provider-mixed-azure-compute Crea un inventario Azure Compute con impostazioni di accesso basate su connettore. |
|
provider-mixed-gcp-compute Crea un inventario Google Compute Engine con impostazioni di accesso basate su connettore. |
|
provider-secret-bitwarden Risolve i riferimenti ai segreti da [Bitwarden](https://bitwarden.com/). |
provider-secret-onepassword Risolve i riferimenti ai segreti da [1Password](https://1password.com/). |
provider-secret-custom-script Risolve i riferimenti ai segreti tramite script locali personalizzati. |
|
provider-secret-os-keychain Risolve i riferimenti ai segreti dal portachiavi del sistema operativo locale. |
![]() lssh core / stableAccesso SSH interattivo, comandi paralleli e modalità di inoltro. |
![]() lscp transfer / stableCopia in stile SCP via SSH/SFTP, inclusi i trasferimenti da remoto a remoto. |
![]() lsftp transfer / stableShell SFTP interattiva per navigare e trasferire file. |
![]() lsshell sysadmin / betaShell interattiva parallela con comandi broadcast e mirati. |
![]() lsmux sysadmin / betaArea di lavoro SSH basata su pannelli per flussi di lavoro multi-host. |
![]() lsmon monitor / betaInterfaccia di monitoraggio multi-host via SSH senza agenti remoti aggiuntivi. |
![]() lssync transfer / betaSincronizzazione ad albero via SSH/SFTP con modalità demone e bidirezionale. |
![]() lsdiff sysadmin / betaConfronta file remoti da più host in una TUI sincronizzata. |
![]() lspipe sysadmin / alphaSessioni host persistenti riutilizzabili da pipeline locali e automazione. |
lsshfstransfer / betaMonta una directory remota tramite `FUSE su Linux` o `NFS su macOS`. |
| Progetto | Comando(i) più vicino(i) di lssh | Focus principale | Differenza da lssh |
|---|
sshs | lssh | Selettore host SSH basato su TUI | Simile nello spirito a un selettore host mirato, ma lssh copre anche esecuzione parallela, inoltro, flussi di lavoro mux e destinazioni basate su provider/connettore. |
ClusterSSH (cssh) | lssh -P, lsmux, lsshell | Amministrazione interattiva multi-host | Ottimo per la digitazione broadcast in più terminali; lsshell e lsmux sono più adatti quando si desiderano flussi di shell sincronizzati all'interno di un'unica suite. |
pssh | lssh -p, lscp, lssync | Esecuzione parallela di comandi e strumenti di trasferimento | Adatto per lavori CLI paralleli, mentre lssh aggiunge selezione host TUI, flussi di lavoro interattivi e un set di strumenti multi-comando più integrato. |
tmuxinator | lssh -P, lsmux | Gestione del layout delle sessioni tmux | Ottimo per aree di lavoro tmux predefinite, ma non è di per sé un selettore host SSH o uno strumento di trasferimento. lsmux è orientato a SSH fin dall'inizio. |