
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:
![]() Interaktive Host-Auswahl
Wählen Sie einen oder mehrere Hosts im TUI-Menü aus. |
![]() Parallele Befehlsausführung
Wählen Sie Hosts aus und führen Sie denselben Befehl auf allen aus. |
![]() Mux-Arbeitsablauf
Öffnen Sie die Terminal-Arbeitsumgebung mit mehreren Fenstern. |
![]() Mux-Arbeitsablauf mit Befehl
Starten Sie die Mux-Oberfläche und führen Sie sofort einen Befehl aus. |
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.