
Eine terminal-native Remotezugriffs-Suite für SSH, Cloud-Inventare, anbieterunterstützte Konnektoren, parallele Befehle, Mux-Arbeitsbereiche, Dateiübertragung und Überwachung.
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 |
![]() Parallele Befehlsausführung |
![]() Mux-Arbeitsablauf |
![]() Mux-Arbeitsablauf mit Befehl |
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-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-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. |
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. |
Das lssh-Projekt umfasst mehrere Werkzeuge für SSH-zentrierte Workflows.
![]() 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. | / Panel-basierter SSH-Arbeitsbereich für Multi-Host-Terminal-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.
| 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. ist von Grund auf SSH-orientiert. |
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.
sysadminbeta
![]() 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. |
lsmux