
Eine terminal-native Remotezugriffs-Suite für SSH, Cloud-Inventare, anbieterunterstützte Konnektoren, parallele Befehle, Mux-Arbeitsbereiche, Dateiübertragung und Überwachung.
ls + ssh = lssh
lssh ist eine terminal-native Suite für den Remote-Zugriff über SSH, die Cloud-Inventare und anbieterbasierte Konnektoren unterstützt.
Es ermöglicht die Auswahl von Hosts aus der OpenSSH-Konfiguration, der lssh-Konfiguration oder Anbieterinventaren. Diese können dann über natives SSH oder Konnektor-Backends wie AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet und benutzerdefinierte Anbieter bedient werden.
Verwenden Sie es für interaktive Shells, parallele Befehle, Mux-Arbeitsbereiche, Dateiübertragung, Synchronisation, Einhängen und Überwachung. Hosts, die über Konnektoren angebunden sind, stellen nur die Aktionen zur Verfügung, die ihr Konnektor unterstützt.
brew install blacknon/lssh/lssh
go install github.com/blacknon/lssh/cmd/lssh@latest
Anbieterbasierte Inventar- und Konnektorfunktionen verwenden separate ausführbare Dateien für die Anbieter.
Wenn Sie nur cmd/lssh installieren, werden diese Anbieter-Binärdateien nicht automatisch installiert.
Für die lokale Entwicklung installieren Sie die gebündelten Anbieter mit:
mise run provider_install
Für Release-Builds installieren Sie entweder das All-in-One-Archiv lssh-complete_* oder fügen Sie das passende Archiv lssh-providers_* von den GitHub-Releases hinzu.
Weitere Installationsdetails, einschließlich anderer Optionen und plattformspezifischer Hinweise, finden Sie unter docs/install.md.
Verwenden Sie bereits ~/.ssh/config?
Einfach ausführen:
lssh
Möchten Sie eine lssh-Konfiguration aus Ihrer vorhandenen SSH-Konfiguration generieren?
lssh --generate-lssh-conf > ~/.lssh.toml
lssh ist für einen einfachen Arbeitsablauf konzipiert:
Sie können auch direkt einen einzelnen Host ansprechen, wenn Sie bereits wissen, wohin Sie sich verbinden möchten:
lssh -H my-server
Weitere Details zu Konfigurationsformaten und -einstellungen finden Sie unter cmd/lssh/README.md.
Möchten Sie lssh schnell mit einer einsatzbereiten lokalen Spielwiese ausprobieren?
Beginnen Sie mit demo/README.md.
Für den Telnet-Konnektor mit Multi-Hop-Anbieter-Flow verwenden Sie demo-telnet-provider/README.md.
lssh unterstützt sowohl Ihre vorhandene OpenSSH-Konfiguration als auch ein eigenes Format.
Wenn Sie schnell starten möchten, können Sie ~/.ssh/config unverändert verwenden. Wenn Sie reichhaltigere Host-Metadaten und arbeitsablauforientierte Einstellungen wünschen, wechseln Sie stattdessen zu einer lssh-Konfiguration.
Sie können auch eine lssh-Konfiguration aus Ihrer vorhandenen SSH-Konfiguration generieren:
lssh --generate-lssh-conf > ~/.lssh.toml
Auch nach dem Wechsel zur lssh-Konfiguration können Sie weiterhin auf Ihre vorhandene OpenSSH-Konfiguration verweisen und Hosts von dort laden:
[sshconfig.default]
path = "~/.ssh/config"
Weitere Details zu Konfigurationsformaten und -einstellungen finden Sie unter docs/configuration.md.
lssh kann mit mehr als nur statischen SSH-Konfigurationseinträgen arbeiten.
Anbieter ermöglichen es, Hosts aus externen Inventarquellen zu beziehen, Secrets unmittelbar vor der Verbindung aufzulösen und nicht-SSH-Verbindungs-Backends wie cloudverwaltete Konnektoren zu verwenden.
In v0.10.0 werden anbieterbasierte Inventar- und Secret-Workflows am besten als beta betrachtet.
Der Zugriff über Konnektoren, der über natives SSH hinausgeht, ist noch experimentell, insbesondere bei cloudverwalteten Laufzeiten und nicht-SSH-Backends.
Wenn Sie anbieterorientierte Abläufe lokal ausprobieren möchten, beginnen Sie mit diesen Demos:
Eine Übersicht über die Anbieterarchitektur und das Protokoll finden Sie unter provider/README.md. Kategoriedetails sind ebenfalls dokumentiert unter inventory, connector, secret und mixed.
Diese Anbieterimplementierungen sind derzeit in diesem Repository gebündelt.
|
provider-inventory-proxmox Erstellt Hosteinträge aus dem Proxmox-Inventar. |
|
provider-connector-openssh Nutzt OpenSSH-kompatible Verbindungsverarbeitung als anbietergestützten Konnektor. |
| provider-mixed-aws-ec2 Kombiniert EC2-Inventar mit AWS-SSM- und EC2-Instance-Connect-Endpoint-Konnektoren. Native SSH-artige Abläufe sind nutzbar, konnektorspezifisches Verhalten bleibt experimentell. |
Das lssh-Projekt umfasst mehrere Werkzeuge für SSH-zentrierte Workflows.
lssh-Befehlsdetails, Weiterleitung und lokale rc-NutzungWenn Sie lssh bewerten, sind auch diese Projekte einen Blick wert.
Sie überschneiden sich mit Teilen der Suite, decken aber in der Regel einen engeren Ausschnitt des gesamten Workflows ab.
lssh-Suite unterscheidetlssh kombiniert Hostauswahl, interaktives SSH, parallele Befehlsausführung, Weiterleitung und anbieter-/konnektorgestützte Ziele.lsshell konzentriert sich auf parallele interaktive Shell-Workflows, anstatt nur viele Terminals zu starten.lscp, lsftp und lssync decken Dateiübertragung und -synchronisation als erstklassige Befehle in derselben Suite ab.lsmux bietet einen panel-basierten SSH-Arbeitsbereich und nicht nur Sitzungsvorlagen.lspipe hält ausgewählte Hosts für lokale Pipelines und Automatisierung wiederverwendbar.
![]() Interaktive Host-Auswahl |
![]() Parallele Befehlsausführung |
![]() Mux-Arbeitsablauf |
![]() Mux-Arbeitsablauf mit Befehl |
|
provider-connector-telnet Erreicht Telnet-Ziele über die Konnektor-Schnittstelle. |
|
provider-connector-winrm Führt Befehlsausführungs-Workflows gegen WinRM-Ziele aus. Interaktive Shell-Unterstützung ist in v0.10.0 nicht verfügbar. |
|
provider-mixed-azure-compute Erstellt Azure-Compute-Inventar mit konnektorbewussten Zugriffseinstellungen. |
|
provider-mixed-gcp-compute Erstellt Google-Compute-Engine-Inventar mit konnektorbewussten Zugriffseinstellungen. |
|
provider-secret-bitwarden Löst Secret-Referenzen von [Bitwarden](https://bitwarden.com/) auf. |
provider-secret-onepassword Löst Secret-Referenzen von [1Password](https://1password.com/) auf. |
provider-secret-custom-script Löst Secret-Referenzen durch benutzerdefinierte lokale Skripte auf. |
|
provider-secret-os-keychain Löst Secret-Referenzen aus der lokalen Betriebssystem-Schlüsselverwaltung auf. |
![]() lssh core / stableInteraktiver SSH-Zugriff, parallele Befehle und Weiterleitungsmodi. |
![]() lscp transfer / stableSCP-artiges Kopieren über SSH/SFTP, einschließlich Remote-zu-Remote-Übertragungen. |
![]() lsftp transfer / stableInteraktive SFTP-Shell zum Durchsuchen und Übertragen von Dateien. |
![]() lsshell sysadmin / betaParallele interaktive Shell mit Broadcast- und zielgerichteten Befehlen. |
![]() lsmux sysadmin / betaPanel-basierter SSH-Arbeitsbereich für Multi-Host-Terminal-Workflows. |
![]() lsmon monitor / betaMulti-Host-Überwachungsoberfläche über SSH ohne zusätzliche Remote-Agenten. |
![]() lssync transfer / betaBaum-Synchronisation über SSH/SFTP mit Daemon und bidirektionalen Modi. |
![]() lsdiff sysadmin / betaVergleicht entfernte Dateien von mehreren Hosts in einer synchronisierten TUI. |
![]() lspipe sysadmin / alphaDauerhafte Host-Sitzungen, die aus lokalen Pipelines und Automatisierung wiederverwendet werden können. |
lsshfstransfer / betaHängt ein entferntes Verzeichnis über `FUSE unter Linux` oder `NFS unter macOS` ein. |
| Projekt | Nächste lssh-Befehle | Hauptfokus | Unterschied zu lssh |
|---|
sshs | lssh | TUI-basierte SSH-Hostauswahl | Im Geiste einem fokussierten Host-Picker ähnlich, aber lssh deckt auch parallele Ausführung, Weiterleitung, Mux-Workflows und anbieter-/konnektorgestützte Ziele ab. |
ClusterSSH (cssh) | lssh -P, lsmux, lsshell | Interaktive Multi-Host-Administration | Stark für Broadcast-Eingabe in mehrere Terminals; lsshell und lsmux sind näher dran, wenn Sie synchronisierte Shell-Workflows innerhalb einer Suite wünschen. |
pssh | lssh -p, lscp, lssync | Parallele Befehlsausführung und Übertragungswerkzeuge | Geeignet für parallele CLI-Aufgaben, während lssh TUI-Hostauswahl, interaktive Workflows und ein stärker integriertes Multi-Befehls-Werkzeugset hinzufügt. |
tmuxinator | lssh -P, lsmux | tmux-Sitzungslayout-Verwaltung | Hervorragend für vordefinierte tmux-Arbeitsbereiche, aber es ist kein SSH-Hostpicker oder Übertragungswerkzeug. lsmux ist von Grund auf SSH-orientiert. |